C & C++ FAQ
目次
C
C++
int型が少なくとも表すことのできる値の下限は-32768ですか、それとも-32767ですか。
ずばり
-32767
です。
負数を表す方法として、2の補数表現や、1の補数表現、符号+絶対値方式があります。
2の補数表現では、16ビット整数あれば
-32768
~
32767
までの65536個の整数を表すことができます。
一方、1の補数表現では、
-32767
~
32767
までの65535個の整数しか表すことができません。
したがって、int型の表現範囲として、標準Cで保証されるのは、
-32767
なのです。
なお、1の補数表現や2の補数表現に関しては、柴田望洋著『明解C言語入門編』第7章や、柴田望洋著『明解C言語実践編』第2章で詳しく解説されています。
■ 根拠 ■
標準C
§5.2.4.2.1
Sizes of integral types
標準C
99
§5.2.4.2.1
Sizes of integer types
戻る