题
在 limits.h
, ,有#Defines INT_MAX
和 INT_MIN
(和shrt_*和long_*等),但仅 UINT_MAX
.
我应该定义 UINT_MIN
我?是 0
(正零)便携式值?
解决方案
如果您想成为“ typesafe”,则可以使用 0U
, ,因此,如果您在表达式中使用它,您将拥有正确的促销 unsigned
.
其他提示
这是一个未签名的整数 - 根据定义,其最小的值为0。如果您需要一些理由,除了常识, 标准 说:
6.2.6.2整数类型
- 对于未签名的整数类型
unsigned char
, ,对象表示的位应分为两组:值位和填充位(不需要后者)。如果有 n 值位,每个位应代表1和2^之间的2的不同功率(n-1),因此该类型的对象应能够表示0到2^的值(n-1)使用纯二进制表示;这应称为价值表示。任何填充位的值均未指定。
您可以使用 std::numeric_limits<unsigned int>::min()
.
不隶属于 StackOverflow