最大値と最小値

32ビットで扱える整数は意外と小さい
コンピュータで表せる数には最小値と最大値がある。演算結果が、最大値を超えたり、最小値を下回る場合はエラー処理が必要だ。32 ビットのアプリケーションやライブラリを使っている場合には注意が必要だ。整数として数十億という金額を扱うことができない。

最大値と最小値

Z80 CPU
8 ビットであらわせる整数(符号付き)の範囲は-128~+127 である。これを超える数を扱うことはできない。
注意が必要なのは演算結果だ。たとえば 120 + 8 = 128 は、足される数も足す数も 8 ビットであらわせるが、結果の 128 は 8 ビットの最大値を超えてしまうことだ。これをオーバーフローと呼び、プログラム側でエラー処理をしなければいけない。
逆に、-120 - 9 = -129 は最小値を下回ってしまう。これをアンダーフローと呼び、同様にプログラム側でエラー処理をする必要がある。
掛け算や割り算では、オーバーフローやアンダーフローが起きやすいので注意が必要だ。
ビット最小値最大値
8-128+127
16-32,768+32,767
32-21億4748万3648+21億4748万3647
64-922京3372兆368億5477万5808-922京3372兆368億5477万5807

32ビットと64ビット

現行のパソコン用OS は 64 ビット対応しているので、計測・計量可能な数を扱う分には、オーバーフローやアンダーフローが起きることはないだろう。
だが、32 ビットのアプリケーションやライブラリを使っている場合には注意が必要だ。21 億あまりとなると、大企業の会計処理を行おうとした途端にエラーとなってしまう。
システム開発する前に、利用する処理系で扱える数の最大値/最小値を確認しておこう。
(この項おわり)
header