- ベストアンサー
2進数表記について
2進数表記で「11001101」の2の補数を教えてください。 何しろ文系なのでさっぱり分かりません。よろしくお願いします♪
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
補数の定義は、 [整数部の桁数が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)
#3,akino4さんのご回答の例を一つ書いてみます。 「01010010」の2の補数は、 1:0と1を反転する。 → 10101101 2:1を足す。 → 10101110 ちなみに、これはコンピュータの内部で符号付の整数を表すときに使われる手法ですね。
- akino4
- ベストアンサー率18% (35/185)
えっとコンピュータの授業でその2の補数をやっているのならば ビットを(0と1を)反転して1を足すってのが教科書的には 正解だと思いますよ。正の数でも負の数でもいっしょです。 理屈は二進数でカウントアップしている時計の文字盤みたいなのを 想像してみてください、ま反対に行けば、負の数になるはずだけど0なんていう 正とも負ともとれない数字があるせいで1足さなきゃならないって感じっす。
- hero1000
- ベストアンサー率29% (114/390)
2の補数表現での「11001101」は10進数でいくつなのか? という質問でよろしいのでしょうか。 そうだという仮定で回答します。 まず、最上位ビット(左端)をチェックします。 「11001101」の最上位ビットは1 これにより、負の数ということになりますので、次の手順で換算します。 各ビット(2進数の各桁)を反転させます。 「11001101」→「00110010」 これを10進表記に直します。 「00110010」=2^5+2^4+2^1=50 これに1を加えます。 50+1=51 これが絶対値になりますので、答えは「-51」になります。