• ベストアンサー

2の補数について

基本情報試験の勉強をしているのですが、 2の補数による減算 46-25で 46=(0010 1110)2 25=(0001 1001)2 とあったのですが、これらはどうしてこの数字になるのでしょう? この(0010 1110)などはどこから出てきたんですか? 基数変換をするんでしょうか? 解説よろしくお願いします。

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

  • ベストアンサー
  • URA-POP
  • ベストアンサー率50% (1/2)
回答No.4

46=(0010 1110)2 というのは以下の計算から出すことができます。           余り(2進数)  46÷2=23・・・0  23÷2=11・・・1  11÷2= 5・・・1   5÷2= 2・・・1   2÷2= 1・・・0   1÷2= 0・・・1 で十進数一桁は二進数では4桁必要となるので上位に(00)を付けてやると(46)=(0010 1110)になります。25の方も同様のやり方で2進数に変換できます。 2の補数は分かりますか??

choobn
質問者

お礼

できました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • cdsdasds
  • ベストアンサー率52% (114/217)
回答No.3

45や25を2進数で表示すると、それぞれ10110と11001になります。 頭に0をいくつか付けて8桁にしているのは基本情報で想定している計算機が1byte=8bit=2進数8個組を計算の単位としているからです。 念のためですが、4桁目の空白は読みやすさのためで、4桁の数字2個組というわけではないです。 10進数を2進数に変換する方法はご存知だと思うので、MS-WINDOSのアクセサリの電卓を表示メニューで関数電卓にして、10進数を2進表示にしてみると、10進数→2進数の変換をしてくれるのでわかりやすいかと思います。

choobn
質問者

お礼

ありがとうございます。 やっとできました。

すると、全ての回答が全文表示されます。
  • mii-japan
  • ベストアンサー率30% (874/2820)
回答No.2

46=(0010 1110)2 の意味が理解できないようですね (0010 1110)2 は2進数です  左から10進で128,64,32,16 8,4,2,1 を表します で 0*128+0*64+1*32+0*16+1*8+1*4+1*2+0*1 で 10進の46です 補数はそれぞれの桁の1/0を入れ替えます(足すと 1111 1111 になる) (足して (1) 0000 0000 とする 方法もあります 1の補数、2の補数とか言ったはずです)

choobn
質問者

お礼

ありがとうございます。 やっとわかりました。

すると、全ての回答が全文表示されます。
noname#22488
noname#22488
回答No.1

そうです、基数変換するとそうなります。

choobn
質問者

お礼

できました。

すると、全ての回答が全文表示されます。

関連するQ&A