长12位数?

时间:2011-06-21 00:01:33

标签: c++ types long-integer digit

我正在尝试将long用于12位数,但是它说“整数常量对于”long“类型来说太大了”,我尝试使用C ++和Processing(类似于Java)。发生了什么,我应该用它做什么?

4 个答案:

答案 0 :(得分:5)

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

要保证64位,您可以使用long long类型,也可以使用int64_t等固定宽度类型。

答案 1 :(得分: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';

答案 2 :(得分:1)

尝试在gcc中使用long long或在msvc中使用__int64

答案 3 :(得分:1)

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

int8_t 
int16_t
int32_t
int64_t

和他们的无符号对应物(uint8_t等)。

更新:标题在C ++中被称为<cstdint>