- ベストアンサー
負の二進数
2の補数表現を用いた符号付き8ビットの2進数のとき 10進数で -6 の値はどうなるのでしょう・・・? 16進数時の値と考え方も教えていただければ幸いです・・。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
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)
★アドバイス >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 となります。 ・以上。
- buriburi3
- ベストアンサー率44% (353/792)
一般的には2の補数で表現します。 10進数 : 2進数 6 : 00000110 -6 : 11111010 論理反転して+1した値ですが、加算すると(キャリーを無視すれば)0になります。