Think

頭をちょっと使ってみましょう

2進数 引き算とビット長

2006-06-20 12:50:17 | 算数 2進数

2進数の計算時はブット長が重要であることは 2進数 引き算 答えがマイナス? でも説明しました。
これを再度説明します。

0010 - 0100 と 00000010 - 00000100 の答えが異なることが理解できますか?

0010 - 0100 = 1010
00000010 - 00000100 = 11111010

共に10進数換算では 2-4 = -2 となるべきものです。
下表のSigned(符号付)の場合の4ビットと8ビットの2進数の10進換算マイナスの部分を見ると、ビット長により同じマイナス値でも2進数値は異なることが分かります。

4bit unsigned
符号無し
signed
符号付
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 -8
1001 9 -7
1010 10 -6
1011 11 -5
1100 12 -4
1101 13 -3
1110 14 -2
1111 15 -1
8bit unsigned
符号無し
signed
符号付
0000 0000 0 0
0000 0001 1 1
0000 0010 2 2
0111 1100 4 4
0111 1101 5 5
0111 1110 6 6
0111 1111 127 7
1000 0000 128 -128
1000 0001 129 -127
1000 0010 130 -126
1111 1100 252 -4
1111 1101 253 -3
1111 1110 254 -2
1111 1111 255 -1

2進数のSigned時に置けるマイナス表現、基本はそのビット長の全てのビットが1の場合、-1と言うことです。
想像は簡単に着くと思いますが、分かりますか?




最新の画像もっと見る