X86\X64平台下指针占用几个字节?


前言

言归正转,以前只知道指针在32位操作系统下占用4个字节,64位操作系统下占用8个字节。具体为什么也是在秋招中的一场面试中,碰到为什么?也是自己准备不充分从而导致的后果。



一、X86平台下指针为什么占用4个字节?

        首先,X86是32位操作系统,其实小编以前也不太清除,对X86和X64一直搞混,下面我写出自己的理解。

        x86通常是指32位系统的意思。X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC领域。x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。

那么为什么32位操作系统指针就占用4个字节呢?

        首先,32位操作系统,也指的是cpu是32位的,计算机主机的组成部分是由CPU和主存储器完成的。

CPU功能主要就是解释计算机指令以及处理计算机软件中的数据,因为CPU不能直接与硬盘去交换数据,只能跟内存去进行数据交换。

        那么他是怎么进行交换的呢?通过三条总线的协同合作进行完成。

        1.首先,通过地址总线去取数据,X86是32位操作系统,那么地址总线一次可以读32位,也就是4字节,通过这样的方式进行寻址。(地址总线决定CPU能访问的最大内存空间大小)

        2.其次,控制总线了解一下读取到的数据是读还是写(控制总线决定CPU对其他元器件的控制能力)

        3.最后,数据总线再把数据传输到CPU中,CPU在根据是写还是读,通过运算器进行运算。(数据总线是CPU与内存或其他期间之间的数据传输通道)

总结:

        X86是32位操作系统,CPU是32位的,数据宽度也是32位,CPU一次可处理的位数是32位数据,也就是4个字节。

        X64是64位操作系统,CPU是64位的,数据宽度也是64位,CPU一次可处理的位数是64位数据,也就是8个字节。

       从上面所述可以看出,X64的性能要比X86性能好,因为一次能处理的二进制位数多。

补充:x86是windows操作系统,X64是linux操作系统。

最后回答问题:因为在x86平台下,CPU一次可处理32位数据,也就是能提取的空间就是32位,指针又是存放地址的是一块空间,CPU通过一次提取这一块空间的数据,找到下一块地址所存放的数据,因此X86平台下指针是4个字节。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟道xn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值