fd3cxomn1#
在stdint.h中定义了一个宏UINT32_MAX,您可以使用它
stdint.h
UINT32_MAX
#include <stdint.h> uint32_t max = UINT32_MAX;
<stdint.h>
http://pubs.opengroup.org/onlinepubs/009695299/basedefs/stdint.h.html
6ss1mwsb2#
UInt 32的最大值为0xFFFFFFFF(或十进制的4294967295)。sizeof(UInt32)不会返回最大值;它将返回4,即32位无符号整数的字节大小。
0xFFFFFFFF
sizeof(UInt32)
oipij1gg3#
只需使用标准的十六进制表示法设置最大值,然后根据您的需要进行检查。32位是8个十六进制字节,因此它将如下所示:
let myMax: UInt32 = 0xFFFFFFFF if myOtherNumber > myMax { // resolve problem }
ut6juiuv4#
手提道:
std::numeric_limits<uint32_t>::max()
n3h0vuf25#
4_294_967_295是最大值或十六进制值0xFFFFFFFF。
krcsximq6#
C或C++中任何无符号的替代方法是:
anUnsigned = -1;
这是很有用的,因为它适用于所有类型,所以如果你从unsigned int更改为unsigned long,你不需要检查你的代码。你也会在很多比特调整代码中看到这一点:
unsigned int
unsigned long
anUnsigned |= -(aBoolOrConditionThatWhenTrueCausesAnUnsignedToBeSetToAll1s) anUnsigned |= -(!aValueThatWhenZeroCausesAnUnsignedToBeSetToAll1s) anUnsigned |= -(!!aValueThatWhenNonZeroCausesAnUnsignedToBeSetToAll1s)
缺点是它看起来很奇怪,因为它将一个负数赋给了一个无符号的!
6条答案
按热度按时间fd3cxomn1#
在
stdint.h
中定义了一个宏UINT32_MAX
,您可以使用它有关相关标题
<stdint.h>
的更多信息:http://pubs.opengroup.org/onlinepubs/009695299/basedefs/stdint.h.html
6ss1mwsb2#
UInt 32的最大值为
0xFFFFFFFF
(或十进制的4294967295)。sizeof(UInt32)
不会返回最大值;它将返回4,即32位无符号整数的字节大小。oipij1gg3#
只需使用标准的十六进制表示法设置最大值,然后根据您的需要进行检查。32位是8个十六进制字节,因此它将如下所示:
ut6juiuv4#
手提道:
n3h0vuf25#
4_294_967_295是最大值或十六进制值0xFFFFFFFF。
krcsximq6#
C或C++中任何无符号的替代方法是:
这是很有用的,因为它适用于所有类型,所以如果你从
unsigned int
更改为unsigned long
,你不需要检查你的代码。你也会在很多比特调整代码中看到这一点:缺点是它看起来很奇怪,因为它将一个负数赋给了一个无符号的!