• 为什么一个指针在32位系统中占4个字节,在64位系统中占8个字节?


    一个指针在64位的计算机上,占8个字节;
    一个指针在32位的计算机上,占4个字节。

    原因如下:

    我们都知道cpu是无法直接在硬盘上读取数据的,而是通过内存读取。cpu通过地址总线、数据总线、控制总线三条线对内存中的数据进行传输和操作。

      具体流程:

      1、cpu通过地址总线,找到该条数据;

      2、通过控制总线得知该操作是读操作还是写操作;

      3、通过数据总线将该数据读取到cpu或者从cpu写到内存中。

      所以,

      地址总线的宽度决定了CPU的寻址能力;
      数据总线的宽度决定了CPU单次数据传输的传送量,也就是数据传输速度;
      控制总线决定了CPU对其他控件的控制能力以及控制方式

      

    我们平时所说的计算机是64位、32位、16位,指的是计算机CPU中通用寄存器一次性处理、传输、暂时存储的信息的最大长度。即CPU在单位时间内(同一时间)能一次处理的二进制数的位数。
    假如,某计算机的地址总线是64位,那么其一次可以在2^64种可能中寻找一个地址,也就是其描述的地址空间为0x0000 0000 0000 0000 0000 0000 0000 0000 ~ 2^64-1。
    我们一般需要64个0或1的组合就可以找到内存中所有的地址,而64个0或1的组合,就是64个位,也就是4个字节的大小,因此,我们只需要8个字节就可以找到所有的数据。所以,在64位的计算机中,指针占8个字节。同理,在32位的计算机中,指针占4个字节。

    同时也可以看出,由于地址总线为64,那么每次寻址的空间为0x0000 0000 0000 0000 0000 0000 0000 0000 ~ 2^64-1,那么CPU的最大内存为2^64Byte

    举个例子

    内存地址就像一条路上的门牌号,用几位表示需要看门牌数量。
    门牌好从0号开始编排,到2^64-1号结束,一共就有2^64个门牌号。分别为二进制的
    000000000000000000000000000000000000000000000000000000号
    000000000000000000000000000000000000000000000000000001号
    000000000000000000000000000000000000000000000000000010号
    最后
    1111111111111111111111111111111111111111111111111111111111110号
    1111111111111111111111111111111111111111111111111111111111111号
    每个门牌的号码是64位(二进制),一个字节为8位,64位就是8字节。

    也就是在64位系统中,cpu会通过地址总线在2^64个地址中寻找其中的某一个地址值的数据,所以8个字节的指针就可以代表内存中任意位置的一个地址值,所以指针占8个字节就足够用了。

    其他知识点:

    数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。
    1bit就是二进制的0和1
    1字节(Byte) = 8位(bit)=8比特
    1个英文字母(不分大小写)占一个字节的空间
    计算机能够处理的最小单元是 字节 而不是位

    常用数据类型所占用的内存空间:

    /*部分数据类型的取值范围:
    int:-2147483648~2147483647
    unsigned int:0~4294967295
    short:-32768~32767
    unsigned short:0~65535
    long: -2147483648~2147483647
    unsigned long:0~4294967295
    */
  • 相关阅读:
    申请Namecheap的.me 顶级域名以及申请ssl认证--github教育礼包之namecheap
    Floodlight+Mininet的SDN实验平台搭建初探
    在DigitalOcean vps中安装vnstat监控流量,浏览器打开php代码。。。
    知识积累
    vue路由跳转(新开页面 当前页面)
    手机访问电脑本地静态页面
    Vue:scoped与module的使用与利弊
    小技巧
    布局记录
    vue项目及vuex使用
  • 原文地址:https://www.cnblogs.com/gaoxiaoniu/p/10677754.html
Copyright © 2020-2023  润新知