9

这就是我想要的:

unsigned int max_unsigned_int_size;
max_unsigned_int_size = ???;

我该怎么做?

4

6 回答 6

38

C

#include <limits.h>
unsigned int max_unsigned_int_size = UINT_MAX;

C++

#include <limits>
unsigned int max_unsigned_int_size = std::numeric_limits<unsigned int>::max();
于 2013-04-08T21:24:29.073 回答
18
unsigned int max_unsigned_int_size = -1;

保证做正确的事。无符号类型的算术始终是模数。

但在具体情况下,您始终应该使用UINT_MAX

于 2013-04-08T21:25:16.127 回答
7

您正在寻找

#include <limits>
std::numeric_limits<unsigned int>::max();

如果您想要大小,sizeof可以乘以 CHAR_BITS 以获得位。

或者,有

std::numeric_limits<unsigned int>::digits();
于 2013-04-08T21:24:11.123 回答
4

你需要std::numeric_limits::max()

#include <limits>

...

max_insigned_int_size = std::numeric_limits<unsigned int>::max():
于 2013-04-08T21:24:03.557 回答
2
  • 对于 C,值由UINT_MAXin给出limits.h
  • 对于 C++,您也可以使用std::numeric_limits<unsigned int>::max()from limits
于 2013-04-08T21:24:15.570 回答
1
#include <limits>

max_unsigned_int_size = std::numeric_limits<unsigned int>::max();
于 2013-04-08T21:24:35.937 回答