python为什么从0开始_为什么大多数编程语言中,索引都是从0开始

为什么大多数编程语言中,索引都是从0开始

世界上绝大多数语言,但凡涉及到了索引这个概念,索引都是从0开始的,对于初学者,难免觉得别扭,毕竟生活中,但凡涉及到和顺序有关的概念,都是从1开始的,那么为什么绝大多数语言的索引,都喜欢从0开始呢?

关于这个问题,没有明确的答案,我搜集整理了3个我认为比较具有说服力的理论,分别是

节省空间论

硬件初始状态论

上届,下届差值论

1. 节省空间论

节省空间论强调,从0开始有利于节省内存空间,假如有4个元素,如果索引从0开始,那么最大索引就是3,如果索引从1开始,最大索引就是4

索引从1开始的十进制为:(1,2,3,4),对应的二进制为(1,10,11,100)

索引从0开始的十进制为:(0,1,2,3),对应的二进制为(0,1,10,11)

显然,从索引1开始计数,会多使用一个bit位,在过去那种内存十分昂贵的年代,这是不被接受的,因此从一开始,索引就是从0开始的,后来大家都习惯了,即便内存很便宜了,大家还是从0开始计数索引

2. 硬件初始状态论

其实和前面的节省空间论说的是一回事,不过是从硬件层面做了解释,计算机底层是0和1,0和1又依靠硬件二极管的电位变化来表示,初始状态下,用于计数的所有二极管都处于低电位,正好是0,因此索引从0开始计数

3. 上届,下届差值论

前面两个虽然有一定道理,但是理解起来有点费力,第3个理论认为,索引的上届和下届的差值应该等于数列的长度,假设一个数列有N个元素,如果索引从1开始,那么描述索引的上届和下届就得这么写

1 <= i < N+1

如果索引从0开始,就可以这样写

0 <= i < N

显然,第二种写法更美观,第一种,让人觉得很别扭

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值