• ベストアンサー

2進数表記について

2進数表記で「11001101」の2の補数を教えてください。 何しろ文系なのでさっぱり分かりません。よろしくお願いします♪

質問者が選んだベストアンサー

  • ベストアンサー
  • sumou111
  • ベストアンサー率56% (50/89)
回答No.2

補数の定義は、  [整数部の桁数がpであるd進数のある数Nに対するdの補数をN(d)、d-1の補数をN(d-1)とすると N(d)=d^p-N(d^p=基準になる数) N(d-1)=(d^p-1)-N(d^p=基準になる数) が成り立つ] というものです。2の補数を求めるにはdに2、Nに11001101を代入。整数部の桁数は8桁のためp=8であるため、基準になる数は2^8です。これは2進数で表すと100000000となります。定義式より、11001101(2)〈11001101の2の補数〉=100000000(2)〈基準になる数〉-11001101(2)=00110011(2)となります。これが答えです。 機械的に2の補数を求めることもできます。「11001101」の1と0をひっくり返します。そうすると「00110010」になりますね。(これが1の補数です。) これに2進数の1を加えると2の補数になります。00110010+1=00110011が11001101の2の補数です。 定義から2の補数を求めるのは難しいので、機械的に解くほうが簡単です。

その他の回答 (3)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.4

#3,akino4さんのご回答の例を一つ書いてみます。 「01010010」の2の補数は、 1:0と1を反転する。 → 10101101 2:1を足す。 → 10101110 ちなみに、これはコンピュータの内部で符号付の整数を表すときに使われる手法ですね。

  • akino4
  • ベストアンサー率18% (35/185)
回答No.3

えっとコンピュータの授業でその2の補数をやっているのならば ビットを(0と1を)反転して1を足すってのが教科書的には 正解だと思いますよ。正の数でも負の数でもいっしょです。 理屈は二進数でカウントアップしている時計の文字盤みたいなのを 想像してみてください、ま反対に行けば、負の数になるはずだけど0なんていう 正とも負ともとれない数字があるせいで1足さなきゃならないって感じっす。

  • hero1000
  • ベストアンサー率29% (114/390)
回答No.1

2の補数表現での「11001101」は10進数でいくつなのか? という質問でよろしいのでしょうか。 そうだという仮定で回答します。 まず、最上位ビット(左端)をチェックします。   「11001101」の最上位ビットは1 これにより、負の数ということになりますので、次の手順で換算します。 各ビット(2進数の各桁)を反転させます。   「11001101」→「00110010」 これを10進表記に直します。  「00110010」=2^5+2^4+2^1=50 これに1を加えます。   50+1=51 これが絶対値になりますので、答えは「-51」になります。

関連するQ&A

  • 2進数の-13の表記について

    2進数の表記について教えてください。 -13は2進数では11110011とあらわします。 なぜなら、13の2進数の00001101の2の補数だからです。 このように教わりました。 しかし、-13を11110011と表記してしまえば 10進数でいう243と表記が同じになってしまいませんか? この点がよくわかりません。 どなたか理解ある方は、教えてください。 よろしくお願い致します。

  • 補数と進数

    補数というものがよくわかりません。 参考書を読んだのですが、いまいち理解できませんでした…。 (0111 1110)※2(小さい2は※2と表記します)の2の補数を求めろ、という問題は、どのようにして解けばよいのでしょうか。 また2進数についてなのですが、2進数を用いて(38+18)を計算せよ、という問題があります。 これは、(3×2の1乗+8×2の0乗)+(1×2の1乗+8×2の0乗) =6+8+2+8=14. …で答えは14??と思ったのですが、答えもないのでわかりません; 全然違っていたら是非解き方を教えてください。

  • 進数表記について

    数の進数表記の種類がいくつかありますが 2進数と10進数表記を英語(?)で表すと 両方ともBINなのはなぜなのでしょうか。 同じ”BIN”という表記で不便になることはないのでしょうか。

  • 2進数 計算

    2進数 計算 2進数で表記される数 a=00110110(2)、b=00001110(2)について a-bを求めて2進数で表記しなさい。という問題なんですが この問題の答えを見ると(bの補数)=11110001(2)+00000001(2)=1110010(2) 従ってa-b=00110110(2)+1110010(2)=00101000(2)   00110110 +11110010 100101000 っていうう風に出していたのですがなんでこういう解き方になるんでしょうか? 普通に引き算でa-bを00110110(2)から00001110(2)を引きんじゃないんですかね?

  • 2進数の足し算について

    CPUは引き算を行うことができず、2の補数を用いて引き算を足し算として考えれると知りました。 そこで8bitの最上位桁を符号とした7bitの引き算-24+(-8)を計算してみたのですが 24(10進数)→0011000(2進数)→1101000(2の補数) 8(10進数)→0001000(2進数)→1111000(2の補数) 符号 7654321←bit  1 1101000 +1 1111000  X 1100000 となり、1100000の2の補数をとると 0100000(2進)→32(10進数)で答えを求められました。 そこでお聞きしたいのですが、値を足したとき(↑の例だと1100000)が求められたときにどういった条件だと1100000の2の補数をとる必要があるのでしょうか? ↑の例だとXがどの条件のときでしょうか? 質問が長くなってしまいましたがよろしくお願いします。

  • 10進数からの変換なのですが・・・

    どうしてもこの598に対する問題の答えが欲しいので、 分かる方、教えてください! お願いします!! 10進数598を2進数に変換すると、((1))になる。 1に対する補数は((2))で2に対する補数は((3))である。 また8進数は((4))で、16進数は((5))である。

  • 10進数→2進数、16進数;2進数→10進数、16進数

    10進数を2進数、16進数に、2進数を10進数、16進数に変換したいのですがやり方がよく分かりません。分かる方、教えてください。(2進数、16進数は16bitで2の補数表示) (1) 4793.5625 (2) -2896 (3) 0110 1110 0010 1010 (4) 1110 1110 0010 1010

  • 2進数の掛け算ができません

    初めまして。2進数の掛け算で困っています。よろしくお願いします。 10進数で2*(-3)=-6ですが、これを3bitの2進数で行ないたいと思います。 すると、010*101(2の補数)=01010となります。 -6は10(2の補数)となるはずですが答えが異なります。 符号拡張というものがあるということで、次はそれで行なってみます。 010*1101(符号を拡張した2の補数)=011010となります。 答えが異なります。ますますわけがわかりません。 ---------- 次に10進数で(-1)*(-1)=1ですが、これを2bitの2進数で行ないたいと思います。 すると、11(2の補数)*11(2の補数)=1001となります。 1は1となるはずですが答えが異なります。 符号拡張というものがあるということで、次はそれで行なってみます。 111(符号を拡張した2の補数)*111(符号を拡張した2の補数)=110001となります。 答えが異なります。ますますわけがわかりません。 ---------- 話は変わるのですが、 Nビット×Mビット=N×Mビットになる とのことです。これも理解できません。 どなたかご教授をお願いしますm(__)m

  • 10進数の補数

    基本情報のテキストのコラムに載っていたことなのですが理解できません 「10進数の補数の場合だと、9の補数と10の補数があることになりますね。 たとえば、2桁の範囲で考えると、 70の9の補数は99-70=29、 10の補数は100-70=30、 となりますね」 ・・・ 意味が・・・わかりません 一応、1の補数、2の補数 については勉強したばかりで理解できているつもりです。 教えてください。 お願いいたします

  • 16進数の補数の求め方

    16進数の場合(ADFの補数を求める) 16の補数 1000 - ADF = 521 15の補数 FFF - ADF = 520 の求め方が分かりません。 是非、教えてください。