各个类型的变量长度由编译器来决定(实际上与操作系统位数和编译器都有关)使用时可用 sizeof() 得到,当前主流编译器一般是32位或64位。
下面是各种类型的Byte数:
类型 最小 32位 64位
char 1 1 1
short int 2 2 2
int 2 4 4
long int 4 4 8
long long int 8 8 8
char* . 4 8
float 6(bit) 4 4
double 10(bit) 8 8
在64位计算机中,int还是32位,int64才是64位。一个int占多少个字节既由编译器决定,也由CPU或虚拟机或操作系统决定,但归根结底是由编译器决定。
1.位(bit):位是计算机存储数据的最小单位。一个二进制位只能表示2种状态,要想表示更多的信息,就得把多个位组合起来作为一个整体,每增加一位,所能表示的信息量就增加一倍。
2.字节(byte):字节是数据处理的基本单位,即以字节为单位存储和解释信息。规定一个字节等于8位二进制位,即1Byte=8bit。
3.字(word):计算机处理数据时,CPU通过数据总线一次存取、加工和传送的数据长度称为字。一个字通常由一个字节和若干字节组成。字与机器有关,在8位系统中:字=1字节,16位系统中,1字=2字节,32位中:1字=4字节,64位中1字=8字节.
4.字长是计算机一次所能处理的实际位数长度,是衡量计算机性能的一个重要标志,不同的计算机字长是不相同的,常用的字长有8位、16位、32位、64位不等。
32位机上int 的范围是-2^31 至 2^31 - 1。一共32位,减去一位符号位再除以二(正负),最大正数还剩30位,存储的最大值是2 ^ 31 - 1;