鱼C论坛

 找回密码
 立即注册
查看: 1615|回复: 3

[技术交流] 计算机地址从0开始,我的观点

[复制链接]
发表于 2013-12-19 12:18:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么从0开始,我认为应该这样去理解:

首先,这个0不是我们通常意义上的数字0,这个0表示的是一种状态,计算机中都是数字电路,只有0和1这两种状态,因此地址的划分就是通过不同的0 1 组合来区别的。比如说3位数的地址可以表示2^3(2的3次方)个地址:

即为 000, 001, 010, 011, 100, 101, 110, 111 这就是8个不同的地址。
地址编号中每一位有两种状态,一共有3个位,那么就是2^3种不同的排列。

再看看我们实际的电脑,地址编号一共是32个数位,每一位可以有两种状态,那么就是2^32种不同的排列,也就是说他可以区分的内存单元有2^32个,一个内存单元是1b,那么2^10(1024)个内存单元就是我们平常说讲的1KB,那么2^20就是1MB,2^30就是1G,2^32 = (2^2) * (2^30)就是4G,我们的内存就是这么算出来的。

如果地址不从0开始(就是32位均为0的情况) ,那么我们的电脑内存就不好计算了,因为总是差1,KB,MB,G这些单位也就没有意义了。比如说1KB是1024个内存单元,如果不从0开始,那么实际上只有1023个内存单元,如果因此把1KB改为1023个单元,并以此类推MB和G的话(即 1G = 1023*1023MB = 1023*1023*1023KB),经过乘法运算后,就会出现差错。
比如20位的内存,如果不从0开始,就表示2^20-1个单元,但很显然1MB = 1023 *1023 KB,并不是2^20-1个单元。此时差错就出现了,所以计算机地址必须从0开始。

注意:我们通常所说的32位,64位电脑,指的不是地址的位数,而是数据总线。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-19 20:11:38 | 显示全部楼层
没懂,理解有点难。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-23 19:31:46 | 显示全部楼层
计算机之所以从零开始计数
是因为数学计数就是从零开始的
如:前十位正整数就是 0-9
不知道你怎么解释得这么复杂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-28 20:51:50 | 显示全部楼层
为什么物质是从虚无中产生的 所以0是一种状 态  嘎嘎嘎
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表