dポイントプレゼントキャンペーン実施中!

2の補数表現を用いた符号付き8ビットの2進数のとき

10進数で -6

の値はどうなるのでしょう・・・?
16進数時の値と考え方も教えていただければ幸いです・・。



よろしくお願いいたします。

A 回答 (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の補数を考える人は少ないと思いますよ。
    • good
    • 0

★アドバイス


>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 …
    • good
    • 0

一般的には2の補数で表現します。



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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!