我用sizeof(int)测试后输出的结果为4,也就是说int类型是4个字节长
,等于32个二进制位。可int类型是用一个字长来表示的,而一个字长
等于2个字节,16个二进制位。这到底是怎么回事,请大家帮我解释一
下为什么会有此差异??????
所谓“字长”,是指计算机处理基本数据单位所包含的位数。
字长是由CPU的内部结构决定的。一般情况,寄存器的位数也就反映了机器的字长。
数据总线的宽度多数由CPU的字长所决定(有些机器总线宽度与字长不一致,如PentiumCPU字长为32位,但所用外部数据总线宽度为64位)。
把概念搞清楚,问题也就清楚了。
===============================================
他强任他强,清风拂山冈;他横任他横,明月照大江。
机器的字长不一定是2个字节,视机器而定
其实在C++中你可以规定一个整形变量的长度,
用以下关键字声明:
__int8
__int16
__int32
__int64
eion(那个谁) 说歪了,LINUX(我的是REDHAT 5.1)是4个字节的字长,所以sizeof(int)=4