可能你也不止一次的听到诸如32位、64位的说法。
这里的“位”到底是什么意思呢?相信通过这篇文章,你可以找到答案。
什么是位?
位,是计算机的最小存储单元,一位,可以存放一个二进制数字
其实,位的概念非常简单,我们知道,在计算机中,无论是数字还是字符,无论是图片还是音乐,存储时,都是使用二进制格式的数字来存储,这个二进制数字的其中一位就是“位”的概念。
比如,一个字符'a',在unicode编码下,它的二进制格式是:
0000 0000 0110 0001
那么我们可以认为,一个'a'字符,在计算机中占16位。
以上,就是位的概念。
32位和64位
现在,你知道了位的概念,但跟我们平时所说的32位CPU、32位操作系统、64位CPU、64位操作系统,这些是什么呢?
这里所说的“位”,是指寻址能力。
这是什么意思呢?要理解这个概念,需要知道以下的知识。
内存的划分
为了方便对内存的管理,内存被划分为许多区块。
这就好比有一个年级,学生比较多,比如有200个学生,为了方便管理,学校可以将学生分为20个小组,每个小组10个学生。
内存也是这样,它被划分为很多的区块,每个区块大小固定为1字节。
正是因为如此,在内存管理上的最小单位是字节,而不是位。你可以让CPU取出某个内存位置的字节,而不能让它取出某个位置的一位。
一个int类型占32位,也就是4个字节,那么一个int类型的数据会在内存中跨越4个区块。
根据这样的知识,你可以计算一下,一个2G的内存,可以被划分为多少个大小为1字节的区块。
下面列出计算过程: 210241024*1024 = 2147483648
CPU的寻址方式
什么是寻址呢?
CPU对内存进行划分之后,问题随之而来,当我需要某个区块的数据时,我如何告诉CPU呢?如何让CPU准确的取到我需要的数据呢?
这就好比给学生分了组之后,我如何找到需要的组。
其实,最简单、最实用的方式就是编号,可以给学生的分组编号(1组,2组,3组......),也可以给内存的每一个区块编号(0, 1, 10, 11, 100......)。只不过要注意的是,现实世界中的编号是十进制的数字,但计算机世界中的编号是二进制。
下面这张图描述了计算机的编号方式:
我们通常把这样的内存编号,称之为内存地址,或简称地址。
有了地址(编号)后,当我需要取到某个内存的数据时,就可以把该内存对应的地址告诉CPU,CPU就可以根据该地址准确的找到对应的内存,取出数据了。而CPU通过地址找到对应内存的过程,就是寻址。
32位CPU和64位CPU
现在再来理解32位和64位CPU就简单多了:一个N位的CPU,是指该CPU能够支持的地址长度为N。
其实,这类似于现实场景中的编号。
比如,一个学校里面的学号是一个5位数,5位数可以编排多少个学生呢?答案是0-99999,十万个(105个),如果学生数量超过了十万,则超过的学生是没有办法编号的。
道理是一样的,如果一个CPU是5位的地址长度,那么它的编号范围则是00000-11111(注意,这里是二进制),一共多少个呢?25个!6位的CPU呢?26个!32位的CPU呢?232个!64位的CPU呢?264个!
为什么N位的CPU,能够得到的编号数量是2N个呢?我不谈数学证明,可以通过找规律得到答案:
1位的CPU可以取到的编号有2个: 0和1 共21个编号
2位的CPU可以取到的编号有4个: 00、01、10、11 共22个编号
3位的CPU可以取到的编号有8个: 000、001、010、011、100、101、110、111 共23个编号
N位的CPU可以取到的编号有2N个
由于一个编号就对应内存中的一字节数据,因此,编号范围越大,能够取到的内存越大。
如果一个CPU只有1位,那么它的编号只有21个,只能寻址21B的内存,哪怕你给它16G的内存,很遗憾,超过21B的部分,它无法找到,因为无法对超过的部分进行编号。
所以,一个CPU位数越高,则它的寻址能力越强,一个N位的CPU,可以有编号2N个,则可以识别2NB的内存。
现在明白了吧,32位的CPU,可以寻址的内存大小是232B,算出来就是4G。也就是说,哪怕你电脑的内存是16G,如果CPU是32位的,最多只能认识4G。
而64位的CPU呢,可不是说寻址能力是32位的两倍,那可是264B,算出来是232G!
在现实生活中,你也会发现,当你使用一台老式电脑时,它们的CPU往往是32位的,哪怕你内存再大,它也只能识别很小的一部分。
你可能还是有疑问:那为什么我32位的CPU,看到的能够识别的内存不足4G呢?那是某些内存中保存有重要数据,不允许你访问,操作系统给你隐藏起来了。
操作系统的位数
CPU有编号范围,同样的,操作系统也有。
当操作系统系统需要操作某一个内存的时候,会将内存地址传递给CPU。
这就会出现3种情况:
操作系统和CPU的寻址位数相同
这种情况不会出现任何问题,32位的CPU+32位的操作系统,可以顺利的传递内存地址,64位的CPU+64位的操作系统也是一样。
操作系统的寻址位数高于CPU
这种情况是不允许的!因为低位数的CPU无法容纳操作系统的传递的地址。这也是为什么当你的CPU是32位时,不允许安装64位的操作系统。
操作系统的寻址位数低于CPU
计算机允许出现这种情况,因为高位数的CPU可以容纳操作系统传递的地址,CPU会在不足的部分前面补充0。
但这样一来,实际上是浪费了CPU的寻址能力,本来是64位的CPU,但如果安装32位的操作系统,由于受操作系统的限制,仍然只能访问很少的内存。
凡注有"环球传媒网"或电头为"环球传媒网"的稿件,均为环球传媒网独家版权所有,未经许可不得转载或镜像;授权转载必须注明来源为"环球传媒网",并保留"环球传媒网"的电头。
- 丈夫死了妻子用还钱么 丈夫欠款死亡妻子该2022-06-15
- 美国黄石公园火山喷发 美国黄石国家公园2022-06-15
- 每日看点!含硒第一名的水果是什么?硒含量最2022-06-15
- 看热讯:曾经心痛dj有没有?曾经心痛dj舞曲2022-06-15
- 信息:犀利哥现状怎么样?犀利哥最帅最霸气2022-06-15
- 动态:自己的神话(自己创造一个神话故事)2022-06-15
- 今日热讯:flv电影在哪里可以下载?下载app2022-06-15
- 儿童封口贴能纠正张嘴睡觉吗 孩子张嘴睡觉2022-06-15
- 星海:一站式跨境浏览,探索全球!2022-06-15
- 【海淘狂欢节】鱼GO全球大促季!这些海淘优2022-06-15
- 招商银行存款有风险吗 中国银行非指定账户2022-06-15
- 为什么法官都喜欢调解 实名举报法官有用吗2022-06-15
- 今年全球最高温度可达到多少度 高温低温怎2022-06-15
- 喉咙不痛但又有异物感 咽喉有异物感是怎2022-06-15
- 献血对身体有害吗 献血屋献血流程2022-06-15
- 今日热门!刘彻和卫子夫的关系? 刘彻一生最2022-06-15
- 快讯:三槐九棘是什么意思?三槐堂是什么意2022-06-15
- 每日视讯:email有哪些形式? email账号大全 2022-06-15
- 每日头条!最新杀毒软件排行榜 十大杀毒软2022-06-15
- 热点!滑雪技巧有哪些?滑雪者初学指南2022-06-15
- 每日热讯!相思树底说相思 十条短句推荐怎2022-06-15
- 最新:废旧物品手工制作图片 用可回收物品2022-06-15
- 【播资讯】转账支票怎么用?转账支票怎么兑2022-06-15
- 新消息丨专科学校哪个好?实力很强的“专科2022-06-15
- 精彩看点:中国80老大太granny90 (八十岁2022-06-15
- 要闻:什么是七情六欲?七情六欲是哪“七情2022-06-15
- 聚焦:回馈是什么意思?回馈深度短文有哪些?2022-06-15
- 新资讯:负荆请罪主人公是谁?负荆请罪是指2022-06-15
- 每日快报!药酒哪个朝代发明的?谈谈中国古代2022-06-15
- 当前信息:母亲祝福语8字怎么写?给妈妈的祝2022-06-15