2

我正在尝试使用long12 位数字,但它说“整数常量对于“长”类型来说太大了”,我尝试使用 C++ 和处理(类似于 Java)。发生了什么,我应该使用什么?

4

4 回答 4

5

在 C 和 C++ 中(与 Java 不同), 的大小long是实现定义的。有时是 64 位,有时是 32 位。在后一种情况下,您只有足够的空间容纳 9 位十进制数字。

要保证 64 位,您可以使用long long类型或固定宽度类型,如int64_t.

于 2011-06-21T00:06:00.043 回答
3

如果要指定文字常量,则必须使用适当的类型说明符:

int i = 5;
unsigned i = 6U;

long int i = 12L;
unsigned long int i = 13UL;

long long int i = 143LL;
unsigned long long int i = 144ULL;

long double q = 0.33L;

wchar_t a = L'a';
于 2011-06-21T00:37:43.600 回答
1

尝试long long在 gcc 或__int64msvc 中使用 a。

于 2011-06-21T00:04:24.483 回答
1

我不知道在 C++ 中,但在 C 中,有一个名为的头文件<stdint.h>,它可以携带具有所需位数的整数类型。

int8_t 
int16_t
int32_t
int64_t

及其未签名的对应物(uint8_t 等)。

<cstdint>更新:标头在 C++中调用

于 2011-06-21T00:09:51.427 回答