在32位处理器上指针的长度为4字节,为什么是4字节,而不是16字节,或者32字节,哪位详细的解释清楚

在32位处理器上指针的长度为4字节,为什么是4字节,而不是16字节,或者32字节,哪位详细的解释清楚... 在32位处理器上指针的长度为4字节,为什么是4字节,而不是16字节,或者32字节,哪位详细的解释清楚 展开
 我来答
我自己的神话i
2010-08-16 · 超过12用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:34.7万
展开全部
如果你学过汇编的话就会很清楚了,但是没学过也没关系。首先教你两个名词段地址和偏移地址(物理地址=段地址*16+偏移地址)。段地址和偏移地址都可以由四位十六进制(用十六进制只是为了表示方便,用二进制表示的话太长了)组成如:ffff:0000前面表示段地址后面表示偏移地址,在计算机中每四位二进制可以表示一个十六进制数,那么八位就表示两个十六进制了也就是说两个十六进制数表示一个字节,那么段地址占两个字节偏移地址占两个字节加起来就是四个字节了,而指针变量存放的就是偏移地址和段地址,自然也就是占四个字节了。
warmwormn
2010-08-16 · TA获得超过737个赞
知道小有建树答主
回答量:1694
采纳率:0%
帮助的人:1339万
展开全部
因为CPU的寄存器是32BIT的
所以对寄存器进行赋值时,最大为32BIT = 4字节
由于汇编中很多计算都是用寄存器来实现的
所以默认指针的长度为32BIT(好象还有短跳指令,对汇编不是太熟悉)
这也是为什么32BIT系统最大寻址范围是4G,WINDOWSXP最多只能认4G的内存条
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d3e418b2c
2010-08-16 · TA获得超过2195个赞
知道大有可为答主
回答量:1361
采纳率:0%
帮助的人:1699万
展开全部
指针的值就是一个地址,如0xFFFFFFFF,也就是一个整数int
在32位机器上,int所占的长度为4个字节,所以一个指针所占的也就是4个字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ccauo989aotune
2010-08-16
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
大家都知道最小的单元就是块,这个块是什么多少的定义取决于处理器,最小的单位是bit,一个byte是最小的单元,包含4bit,但是计算机内部有自己的大小对齐的规则,32bit处理器可能是说的这个吧,指针默认会被放入一个标准的符合对齐规则的单元中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_fmlyht
2010-08-16 · TA获得超过2359个赞
知道大有可为答主
回答量:2398
采纳率:0%
帮助的人:1840万
展开全部
因为32/8=4
多了,地址总线也容不下!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式