には、 and (および SHRT_* と LONG_* など) のlimits.h
#defines がありますが、 .INT_MAX
INT_MIN
UINT_MAX
私はUINT_MIN
自分自身を定義する必要がありますか?0
(正のゼロ) は移植可能な値ですか?
には、 and (および SHRT_* と LONG_* など) のlimits.h
#defines がありますが、 .INT_MAX
INT_MIN
UINT_MAX
私はUINT_MIN
自分自身を定義する必要がありますか?0
(正のゼロ) は移植可能な値ですか?
これは符号なし整数です。定義により、可能な限り小さい値は 0 です。常識以外の理由が必要な場合、標準では次のように述べられています。
6.2.6.2 整数型
- 以外の符号なし整数型の場合
unsigned char
、オブジェクト表現のビットは、値ビットとパディング ビットの 2 つのグループに分けられます (後者のいずれかが存在する必要はありません)。N 個の値のビットがある場合、各ビットは 1 から 2^( N −1) までの異なる 2 の累乗を表すため、そのタイプのオブジェクトは、以下を使用して 0 から 2^( N −1)までの値を表すことができます。純粋なバイナリ表現; これは、値表現として知られるものとします。パディング ビットの値は指定されていません。
を使用できますstd::numeric_limits<unsigned int>::min()
。
「タイプセーフ」にしたい場合は0U
を使用できるため、式で使用すると、 への正しいプロモーションが行われunsigned
ます。