名古屋工業大学
先進セラミックス研究センター
井田 隆
名古屋工業大学 環境材料工学科 3 年次授業「マテリアルデザイン」の講義ノートです。
引き算の結果は負(マイナス)になることもあります。 一般的なディジタルコンピュータでは,負の整数を表現するために「補数表現」という方法を使います。 たとえば 8 ビットの2進数で整数を表現する際に最上位ビットが「0」のときは (0000 0000)b = 0, (0000 0001)b = 1, (0000 0010)b = 2,…, (0111 1111)b = 127 のように普通に値を対応させますが, 最上位ビットが「1」のときは, (1000 0000)b = −128, (1000 0001)b = −127,…, (1111 1111)b = −1 のように負の数を対応させます。 このようにすれば,結果が −128 から 127 の範囲におさまるような足し算は, 負の数が含まれていたとしても前節の加算回路をそのまま使って計算できます。
例えば,「 9 − 5」の計算をするときに,「9 + (−5)」と見なします。
という表現に対して,二進数での加算を行えば
0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | ||
+) | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
つまり,(0000 1001)b + (1111 1011)b = (1 0000 0100)b ですが, 最上位ビットを無視すれば (0000 0100)b = 4 となり, 「9 − 5 = 4」という結果が得られていることがわかります。
補数表現を用いた場合には, 有効なビット数によってその意味する値が変わるということに注意する必要があります。 たとえば,「1111 1111」という表現は 8 ビットでは −1 という数を表しますが, 16 ビットでは 255 という数を表します。
2005年9月6日公開
2013年4月17日更新