在XP中long int和int都是32位,那为啥表示的数字范围不同

如题所述

int 可能是 short int 也可能是 long int,取决于编译器(默认)。
例如 MS VC++ int 是 32位,TC int是 16位。

long int 32 位, short int 16 位。数值范围 不同。

C语言中long和int在PC上都是32位 -- TC int是 16位,不是32 位。

----------------------------
这没什么好纠结的。。多少位就表示有多大。。

参考资料:http://zhidao.baidu.com/question/154366380.html?fr=qrl&cid=866&index=1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-17
主要取决于系统平台和语言实现追问

XP VC6.0,C语言啊。。。

第2个回答  2012-01-17
是么 都是有符号的 位数还一样 范围不同么?追问

long int不是表示范围更大么。。。。。。

追答

long int 就是long 在32位机器是32位,在64位机器上就是64位,也就是一个通用寄存器的长度

追问

好的,我在书上找到了。。。。。在TURBO C上,int是16位,而unsigned是32位。这和C环境还有关么?

第3个回答  2012-01-17
没有不同追问

好吧。。我查到了。long int 范围比int大。

追答

在64位机器上可能是
在32位机器上,如果编译器设定的int是4字节的话,两者范围应该是一致的

追问

16位是不一样的。。TURBO C是不一样,求解