今回は、負の数を扱わない絶対値表現「符号なし2進数」と2の補数で負の数を扱う「符号付き2進数」について詳しく解説します。
前回の宿題【問題4】は、決められたビット数で表現できる数の最大値と最小値を求める問題でした。皆さん解けましたでしょうか?
解けた方も解けなかった方も答え合わせをして、次項の解説までぜひ読んでみてください。毎週コツコツ問題を解いて、デジタル回路の基礎知識を身に付けましょう。
それでは、解答を発表します!
8ビットの2進数で表現できる数の最大値と最小値は?
答え.最大値 255 最小値 −128
16ビットでは?
答え.最大値 65535 最小値 −32768
32ビットでは?
答え.最大値 4294967295 最小値 −2147483648
【問題3】では、ビットデータで負の数を表現する方法、すなわち“2の補数”を紹介しました。
しかし、2の補数について、まだ次のような疑問があります。
例えば、−5は2の補数で、
などと表しますが、これは単なるビットデータなので、
(11111011)2は、251
(1111111111111011)2は、65531
と区別できません。
そこで、コンピュータの世界では「数を表すビット数」と「負の数の扱い」をあらかじめ決めておくのです。
「符号なし2進数」は、負の数を扱わない絶対値表現をいいます。
nビットの符号なし2進数では、「0」から「2のn乗 − 1」までの数を表します。つまり、表1のように、
が表現できる数の範囲となります。
「符号付き2進数」は、2の補数で負の数を扱います。
表2のように、最上位ビット(左端のビット)が0のときはゼロまたは正の数、1のときは負の数であると決められています。
nビットの符号付き2進数では、「−2のn−1乗」から「2のn−1乗 − 1」までの数を表します。つまり、
が表現できる数の範囲となります。
もう【問題4】の答えはお分かりですね。
最大値は符号なし2進数で、
となります。
最小値は符号付き2進数で、
となります。
Copyright © ITmedia, Inc. All Rights Reserved.