小气鬼 发表于 2015-4-8 00:06:50

谢谢分享

小气鬼 发表于 2015-4-8 00:07:28

我也是醉了

夕阳游子 发表于 2015-4-9 11:20:29

建议楼主看下,<c陷阱与缺陷>里面有介绍

yydwzl 发表于 2015-4-11 21:49:02

进来学习

鱼c、晓杰 发表于 2015-4-12 12:33:24

谢谢楼组的无私分享!{:1_1:}

fs1026 发表于 2015-4-12 20:35:55

look

;LFJGKKFJH 发表于 2015-4-23 12:29:11

:shock:

82689681@qq.com 发表于 2015-4-23 17:46:13

我好像zhidao

aslkguier456786 发表于 2015-4-23 18:52:35

因为计算机是二进制的,所以从0开始.

k1727 发表于 2015-4-25 01:54:45

一般理解 0 是没有的意思.
可是在计算机看来 0 也是一种状态,从它的角度看来是一件事务.
是经过深思熟虑设计出来的.

1002457754 发表于 2015-4-25 21:43:53

了解了解

1002457754 发表于 2015-4-25 21:44:28

0000了解了解0000

斗转星移 发表于 2015-4-28 11:26:27

这是大神与屌丝的区别

神天狼01 发表于 2015-4-29 16:33:35


谢谢楼主分享

矢志不渝 发表于 2015-4-29 20:30:22

give me see

桃花飞舞 发表于 2015-4-30 20:48:05

:call:

云淡风轻夜 发表于 2015-5-3 23:00:07

谢谢楼主分享

p7764gyfft 发表于 2015-5-4 12:40:27

值得思考一番

glider 发表于 2015-5-4 14:07:26

本帖最后由 glider 于 2015-5-4 19:18 编辑

我觉着吧,是指针偏移量,从0开始便于寻址。

解释下:
假如内存2000:0000的值是数字1, 2000:0001的值是数字2, 2000:0002的值是数字3,……;当前的CS:IP是2000:0000
如果我们要取数字1,第1个元素,地址是0,指针从初始位置向后移0位,理解为指针偏移量是0
如果我们要取数字2,第2个元素,地址是1,指针从初始位置向后移1位,理解为指针偏移量是1
如果我们要取数字3,第3个元素,地址是2,指针从初始位置向后移2位,理解为指针偏移量是2
……
以此类推下去,数字N的地址是N-1,指针偏移量也是N-1,就是说:指针的偏移量始终与地址相等,一个元素的地址是多少,指针偏移多少就可以取到


相反,如果不是从0开始,而是从1开始,设想一下:
如果我们要取数字1,第1个元素,地址是1,IP的初始位置向后移0位,指针偏移量是0
如果我们要取数字2,第2个元素,地址是2,IP从初始位置向后移1位,指针偏移量是1
如果我们要取数字3,第3个元素,地址是3,IP从初始位置向后移2位,指针偏移量是2
……
以此类推,数字N的地址是N,指针偏移量是N-1,这样的话,指针的偏移量比下标(或者索引)少1,即是说:一个元素的地址是N,指针偏移N再回退1,或者先计算N-1的值,再进行指针的移动

我们知道计算机活动期间一直在对内存进行寻址、读写,可想而知,这种方式对计算机的开销有多大
------------------------------------------------------------------------------------------------------
以上纯属个人看法,欢迎讨论

1127142679 发表于 2015-5-5 00:49:27

谢谢分享
页: 33 34 35 36 37 38 39 40 41 42 [43] 44 45 46 47 48 49 50 51 52
查看完整版本: 计算机地址为什么从零开始?