前言
说起c、c++ 中数据基本数据类型占用字节个数,就不得不说计算机的发展的四个阶段。
- 第一代:20世纪50年代,主要采用真空电子管制造计算机。
- 第二代:20世纪50年代末期,出现了以晶体管为主要元件的第二代计算机。
- 第三代:中小规模集成电路计算机,代表机型1964年IBM公司推出IBM360系列计算机并垄断了60%~70%的国际市场,它的出现标志着计算机进入第三代。
- 第四代:随着大规模集成电路和微处理器的出现,计算机进入第四代。就是目前各位同学所使用的电脑和手机。
问题来了
随着计算机的发展,操作系统的位数也在增加,从8位、16位、32位、64位。那么问题也就来了,在不同位数的操作系统中声明的数据类型所占用的字节数量是不一样的。准确的说是编译环境不同造成的,如果你使用的是64位操作系统,编译环境是32位的那么就按照32位的方式去计算。
答案来了
16位编辑器中
- int 占两个字节,范围 -32768 ~ 32767 (-2^15 ~ 2^15-1);
- long 占四个字节,范围 -2147483648 ~ 2147483647 (-2^31 ~ 2^31-1);
32位编辑器中
- int 占四个字节,范围 -2147483648 ~ 2147483647(-2^31 ~ 2^31-1); 和long一样。
- long 占四个字节,范围 -2147483648 ~ 2147483647(-2^31 ~ 2^31-1);
64位编辑器中
- int 占四个字节,范围 -2147483648 ~ 2147483647 (-2^31 ~ 2^31-1); 和long一样。
- long 占八个字节,范围 -9223372036854775808 ~ 9223372036854775807(-2^63 ~ 2^63-1);
short、float、double、chart不收编辑器的影响
- short 占二个字节, 范围 -32768 ~ 32767 (-2^15 ~ 2^15-1);。
- float 占四个字节, 范围 -3.4 * 10^38 ~ -3.4 * 10^38 (保留七个有效数字)。
- double 占八个字节,范围 -1.7* 10^308 ~ -1.7 * 10^308 (保留十五个有效数字)。
- chart 占一个字符位置,范围 -128 ~ 127 (-2^7 ~ 2^7-1)。
总结
求知的过程任重而道远,希望各位同学能在求知的路上越走越远。如果我那里有错误的地方请同学们指出,欢迎大家留言探索。