unsigned int的最大值

Eva*_*ahn 8 c++ int

这就是我想要的:

unsigned int max_unsigned_int_size;
max_unsigned_int_size = ???;
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Joh*_*ica 35

C

#include <limits.h>
unsigned int max_unsigned_int_size = UINT_MAX;
Run Code Online (Sandbox Code Playgroud)

C++

#include <limits>
unsigned int max_unsigned_int_size = std::numeric_limits<unsigned int>::max();
Run Code Online (Sandbox Code Playgroud)

  • 或两者:`= -1;`. (21认同)
  • @QPaysTaxes:是的。SO 有很多资源讨论这个问题。您始终可以将 -1 分配给任何无符号整数类型并保证获得最大值。 (2认同)

Jen*_*edt 15

unsigned int max_unsigned_int_size = -1;
Run Code Online (Sandbox Code Playgroud)

保证做正确的事.无符号类型的算术总是模数.

但在具体情况下,你总是应该使用 UINT_MAX


seh*_*ehe 6

您正在寻找

#include <limits>
std::numeric_limits<unsigned int>::max();
Run Code Online (Sandbox Code Playgroud)

如果你想要大小,sizeof可以做,乘以CHAR_BITS得到位.

另外,有

std::numeric_limits<unsigned int>::digits();
Run Code Online (Sandbox Code Playgroud)