请教大家
Topic source整数范围是定死的,分别是1 / 2 / 4 / 8 /16 字节,分别是8 / 16 / 32 / 64 / 128 位
32位cpu可以处理64位整数,效率比较低而已,一个加法要拆成多条32位加法指令,64位cpu处理64位整数就是一条指令
关于32/64位计算机都可以处理64位整数.这点我明白了. 谢谢.
还有一个问题:
"整数范围是定死的", 这是一个计算机体系结构层面的限制么? 换一种问法, 这个规则是谁"定死"的?
感谢.
是JVM虚拟机定死了的,JVM虚拟机约定好int是32位,long是64位,然后在不同位数的计算机上,由JVM进行适配,这样程序员就无须关心底层,程序会按照JVM的约定运行,例如long类型在32位系统上,会被JVM拆分成多次进行计算,分别计算高32位和低32位。而像C/C++这种没有屏蔽计算机底层的语言,开发时就必须考虑不同计算机的位数问题,32位电脑上long类型是32位的,64位电脑上long类型是64位的,有时甚至会出现int类型和long类型范围一样的情况,需要在开发时格外注意
- 1
412445773
"CPU原生提供的整型最大范围是64位" 是因为CPU是64位的么?
那么, 10年前的32位CPU原生提供的整型最大范围是32位么?
不懂, 请教大家,谢谢