首页 > 代码库 > c++类型所占的字节和表示范围

c++类型所占的字节和表示范围

(1)short、int 和 long 类型都表示整型值,存储空间的大小不同

一般, short 类型为半个机器字长,int 类型为一个机器字长,而 long 类型为一个或两个机

器字长(在 32 位机器中 int 类型和 long 类型通常字长是相同的)。

(2)常量的定义以及表示范围:

unsigned   int   0~4294967295                                                  就是2^32-1
int   -2147483648~2147483647                                                就是2^(-31) ~ 2^31-1
unsigned long 0~4294967295                                                   就是2^32-1
long   -2147483648~2147483647                                             就是2^(-31) ~ 2^31-1
long long的最大值:9223372036854775807                          就是2^63-1
long long的最小值:-9223372036854775808                         就是2^(-63)
unsigned long long的最大值:18446744073709551615      就是2^64-1
__int64的最大值:9223372036854775807                              就是2^63-1
__int64的最小值:-9223372036854775808                             就是2^(-63)

unsigned __int64的最大值:18446744073709551615           就是2^64-1

(3)c 和 c++的类型所占的字节数

32位编译器

char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) int * 也是 4字节

short int : 2个字节
int:  4个字节
unsigned int : 4个字节
float:  4个字节

double:   8个字节
long:   4个字节
long long:  8个字节
unsigned long:  4个字节

64位编译器

char :1个字节
char*(即指针变量): 8个字节  int * 也是 8字节

short int : 2个字节
int:  4个字节
unsigned int : 4个字节
float:  4个字节

double:   8个字节
long:   8个字节(32位和64位变得就是long,其他的均没有变化啊)
long long:  8个字节
unsigned long:  8个字节 


c++类型所占的字节和表示范围