`

32位和64位

 
阅读更多

一个指针在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个字节就足够用了。

分享到:
评论

相关推荐

    SWT32位和64位库

    标题“SWT32位和64位库”主要关注的是SWT库在不同处理器架构下的适配性。在计算机硬件领域,32位和64位系统分别对应不同的处理器架构,主要区别在于处理数据的能力和内存寻址范围。32位系统最多可以寻址4GB内存,而...

    ico图标支持32位和64位

    在“ico图标支持32位和64位”这个主题中,我们将深入探讨32位和64位ico图标的具体含义、它们之间的区别,以及在实际项目中的应用。 首先,我们来理解32位和64位的概念。在计算机系统中,位(bit)是数据的最小单位...

    64位系统环境下解析32位和64位PE文件

    《64位系统环境下解析32位和64位PE文件》 在现代计算机系统中,64位操作系统已经成为主流,它可以支持更大的内存空间和更高效的处理能力。然而,我们仍然会遇到大量的32位应用程序,这些程序在64位系统下运行时,其...

    JDK1.6 32位和64位官方版

    本篇文章将深入探讨JDK1.6 32位和64位版本的区别以及它们的适用场景。 首先,我们来看32位和64位JDK的区别。主要差异在于处理内存的方式和处理器指令集的兼容性: 1. 内存处理:32位操作系统和JDK最大可支持约4GB...

    32位和64位的区别.pdf

    综上所述,32位和64位的区别不仅仅在于数字上的大小差异,它们各自反映了计算机技术发展中的不同阶段,以及对不同应用场景的适应性。随着应用需求的不断增长,64位系统逐渐成为主流,为未来的技术发展和应用拓展提供...

    cfadisk32位和64位.zip

    标题“cfadisk32位和64位.zip”表明了这款驱动程序兼容32位和64位两种操作系统环境,这在当今多样化的计算平台中显得尤为实用。无论你的电脑运行的是Windows XP、Windows 7、Windows 8还是Windows 10,只要它是32位...

    potplayer全能播放器。32位和64 位

    描述中提到“压缩包包含32位和64位下载版本”,这意味着该压缩文件内包含了两个不同架构的PotPlayer安装程序:PotPlayerSetup64.exe是适用于64位操作系统的版本,PotPlayerSetup.exe则是针对32位系统的。此外,...

    mysql 32位和64位

    在这个压缩包中,包含了32位和64位两个版本,适应不同的用户需求。32位MySQL适用于运行32位操作系统的计算机,而64位MySQL则是为64位操作系统设计的。文件名“mysql_x86_64”表明这是64位版本的MySQL。 对于32位...

    Navicat 32位和64位 Oracle10 、11 、12ocl.dll文件

    在这个特定的压缩包中,我们关注的是Navicat与Oracle数据库之间的交互,特别是针对32位和64位环境下的支持。 Navicat Premium 11.2.7简体中文版是Navicat系列的一个版本,它提供了全中文界面,使得中国用户能够更加...

    sublimetext3 32位和64位

    在Windows、macOS和Linux等操作系统中,有32位和64位两种架构。32位系统能够处理最大4GB的内存,而64位系统理论上可以处理更多的内存,这对于处理大型项目或者运行内存需求高的应用程序(如IDE或复杂的编辑器)来说...

    tomcat7 32位和64位

    首先,32位和64位的区别主要体现在处理器架构和内存处理上。32位系统最大可寻址内存通常为4GB,而64位系统理论上可以寻址的内存远远超过这个限制,这使得64位系统在处理大量数据或运行内存需求高的应用程序时具有...

    Python 3.8.1 32位和64位安装包.rar

    Python 3.8.1是Python编程语言的一个版本,它在32位和64位系统上都有相应的安装包。Python是一种高级、通用、解释型的编程语言,因其易读性强、语法简洁而受到广大开发者的欢迎。32位和64位版本的选择主要取决于你的...

    windows32位和64位的区别

    在计算机操作系统领域,Windows 32位和64位是两个重要的概念,它们代表了不同架构的系统,各自有着不同的特性和应用场景。了解这两者的区别对于优化计算机性能、选择合适的软件以及规划硬件升级路径至关重要。 首先...

    windows上安装postgreSQL的ODBC程序32位和64位

    在本教程中,我们将详细探讨如何在Windows上安装32位和64位的PostgreSQL ODBC驱动程序。 首先,我们需要理解“32位”和“64位”的含义。这主要与操作系统的版本和应用程序的兼容性有关。64位操作系统可以处理更大的...

    chrome浏览器离线安装包(32位和64位)

    这个压缩包提供了32位和64位两种版本的Chrome浏览器离线安装程序,分别是"chromedev_x64-v68.0.3423.2.exe"和"chromedev_x86-v68.0.3423.2.exe"。其中,“x64”代表64位版本,适用于64位操作系统,而“x86”则表示32...

    EditPlusv3.70.351汉化版(含32位和 64位)

    EditPlus最新简体中文修正版,由烈火汉化修正,修正原版多个问题,roustar31绿色便携化,解压后双击点我注册,确定导入注册表即为注册版!内含32位和64位版本

    解决System.Data.SQLite兼容32位和64位问题(无需指定处理器架构和客户机)

    解决System.Data.SQLite兼容32位和64位问题 将当前说明文档的目录下的x64、x86目录和System.Data.SQLite.dll文件复制到您的应用程序根目录中(注意更新引用,引用System.Data.SQLite.dll即可,两目录中的不需要引用,...

    depends 32 位 & 64 位

    本篇文章将深入探讨Depends 32位和64位版本的差异、功能以及如何在不同系统环境下使用。 Depends 32位版是专门用于分析32位Windows系统的应用程序依赖关系的工具。它能够显示所有32位.exe或.dll文件所需的DLLs,...

    glut库函数(32位和64位版本-3.7.6)

    标题提到的是GLUT库的32位和64位版本,3.7.6是其特定的发行版本。在不同的操作系统环境下,程序可能需要对应位数的库文件来运行,32位版本适用于32位操作系统,而64位版本适用于64位操作系统。因此,提供两个版本是...

    64位和32位Notepad++

    标题提到的"64位和32位Notepad++"指的是该软件针对不同处理器架构提供的两个版本。在Windows操作系统中,有32位和64位两种版本,Notepad++为了兼容这两种系统,也分别提供了相应的安装程序。 首先,我们来看32位...

Global site tag (gtag.js) - Google Analytics