• ベストアンサー

負の二進数

2の補数表現を用いた符号付き8ビットの2進数のとき 10進数で -6 の値はどうなるのでしょう・・・? 16進数時の値と考え方も教えていただければ幸いです・・。 よろしくお願いいたします。

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

  • ベストアンサー
noname#77845
noname#77845
回答No.1

2の補数は、「正」の時のビットを全て反転させてから「1」を加えた値と同じになります。これは、9ビットの「100000000」から6を表す「00000110」を引いたものを表しています。 なので、 00000110  ↓ 11111001  ↓(+1) 11111010 ←(-6) になります。 先ほどのように、別のやり方では、 100000000 -00000110 --------- 11111010 と同じになります。 また、16進数で表すときは2進数4ビットと1対1に対応しますから (11111010)2=(FA)16 になります。 0000→0 0001→1 0010→2 0011→3 0100→4 0101→5 0110→6 0111→7 1000→8 1001→9 1010→A 1011→B 1100→C 1101→D 1110→E 1111→F 後は、2進数で求めてから変換するだけです。 いきなり16進数で2の補数を考える人は少ないと思いますよ。

その他の回答 (2)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★アドバイス >2の補数表現を用いた符号付き8ビットの2進数のとき  ↑  2の補数とは『ビット反転』した値に『1』を加算したものです。 >10進数で -6 >の値はどうなるのでしょう・・・?  ↑  まずは +6 で考えます。+6 を 8 ビットの 2 進数にすると  00000110=6  となります。この値をビット反転します。すると  11111001=249  となります。この値に 1 を加算します。すると   11111001  +)00000001  ----------   11111010=250  となります。この値は符号なしだと 250 ですが、符号付きで解釈すると  250 - 256 = -6  となります。ほら出来たよ。-6 の 8 ビット 2 進数が。 ・上記より  +6 の 2 進数をビット反転して 1 を加算することでマイナス値に変換できます。  00000110=+6    ↓  11111001(反転)    ↓  11111010(+1加算)  よって  11111010 が -6 となります。 >16進数時の値と考え方も教えていただければ幸いです・・。  ↑  2 進数の -6 を 16 進数に変換するだけです。  だから  11111010    ↓  1111 1010   ↓  FA  となります。よって 8ビットの 16 進数の -6 は 0xFA となります。 ・以上。

参考URL:
http://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C%E6%95%B0
  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.2

一般的には2の補数で表現します。 10進数 : 2進数  6 : 00000110 -6 : 11111010 論理反転して+1した値ですが、加算すると(キャリーを無視すれば)0になります。

関連するQ&A