10

在中,和(以及 SHRT_* 和 LONG_* 等)limits.h有 #defines ,但只有.INT_MAXINT_MINUINT_MAX

我应该定义UINT_MIN自己吗?(正0零)是可移植值吗?

4

3 回答 3

19

它是一个无符号整数 - 根据定义,它的最小可能值为 0。如果您除了常识之外还需要一些理由,标准说:

6.2.6.2 整数类型

  1. 对于除 之外的无符号整数类型unsigned char,对象表示的位应分为两组:值位和填充位(后者不需要任何一个)。如果有N个值位,每个位应表示 1 和 2^( N -1) 之间的 2 的不同幂,因此该类型的对象应能够表示从 0 到 2^( N -1) 的值,使用纯二进制表示;这应称为值表示。未指定任何填充位的值。
于 2010-08-17T04:25:56.467 回答
7

你可以使用std::numeric_limits<unsigned int>::min().

于 2010-08-17T04:56:32.177 回答
2

如果您想成为“类型安全”,您可以使用0U,因此如果您在表达式中使用它,您将对unsigned.

于 2010-08-17T09:33:55.250 回答