ハードウェアの基礎
 前へ 目次へ 次へ

 1−5 負数

 負数を表すときには、一般的に2の補数を使用する。
10進数 16進数 2進数
127 7F 0111 1111
126 7E 0111 1110
01 0000 0001
00 0000 0000
−1 FF 1111 1111
−2 FE 1111 1110
−127 81 1000 0001
−128 80 1000 0000
 
10進数 16進数 2進数
32767 7FFF 0111 1111 1111 1111
32766 7FFE 0111 1111 1111 1110
1 0001 0000 0000 0000 0001
0 0000 0000 0000 0000 0000
-1 FFFF 1111 1111 1111 1111
-2 FFFE 1111 1111 1111 1110
-32767 8001 1000 0000 0000 0001
-32768 8000 1000 0000 0000 0000
8けたの2進数
  負の最小値 = 1000 0000 → 80(16), -128(10)
  正の最大値 = 0111 1111 → 7F(16), 127(10)
16けたの2進数
  負の最小値 = 1000 0000 0000 0000 → 8000(16), -32768(10)
  正の最大値 = 0111 1111 1111 1111 → 7FFF(16), 32767(10)

  [例] 負数を2の補数で表す場合

-31(10) = -1F(16) = -0001 1111(2) = 1110 0001(2)   (8けた2進数の場合)
 0001 1111(2)      0と1を反転する。(1の補数)
 1110 0000(2)
+       1(2)       1の補数に1を加算した値が2の補数になる。
 1110 0001(2)

1110 0001(2) = -0001 1111(2) = -31(10)
 1110 0001(2)      0と1を反転する。
 0001 1110(2)
+       1(2)      1を加算する。
 1110 1111(2)

-222(10) = -00DE(16) = -0000 0000 1101 1110(2)
              = 1111 1111 0010 0010(2)    (16けた2進数の場合)


 1−6 実数

[例] 実数の場合
3.875(10) = 3(10) + 0.875(10) = 10(2) + 0.111(2) = 10.111(2)
 0.875(10)
×   2(10)
 1.750(10)
 0.75(10)
×  2(10)
 1.50(10)
 0.5(10)
× 2(10)
 1.0(10)
10.111(2)  = 10(2) + 0.111(2)  = 3 + 1 ×  1 
 21
 + 1 ×  1 
 22
 + 1 ×  1 
 23
 = 3.875(10)

11.234375(10) = 11(10) + 0.234375(10) = B(16) + 0.3C(16) = B.3C(16)
 0.234375(10)
×    16(10)
 3.750000(10)
  0.75(10)
×  16(10)
 12.00(10)
B.3C(16)  = B(16) + 0.3C(16) = 11 + 3 ×   1 
 161
 + C ×   1 
 162
 = 11.234375(10)


 前へ 目次へ 次へ
Copyright © 2001 Hiroshi Masuda

 

 

inserted by FC2 system