gpt4 book ai didi

date - 从零开始的月份编号

转载 作者:行者123 更新时间:2023-12-03 04:52:06 26 4
gpt4 key购买 nike

一些流行的编程语言使用相差 1 的月份编号——我想到的是 JavaScript,Java 也是如此,如果没记错的话,C 也是另一个。我有一些问题:

  • 如果您要忽略外行使用的月份编号,那么为了保持一致性,为什么不也忽略外行使用的编号,并从0?
  • 为什么这种情况如此常见?
  • 这最初是谁的想法?

最佳答案

使用零开始计数实际上是汇编程序员的一个优化技巧。他们没有将 1 分配给计数寄存器,而是将寄存器与其自身进行异或运算,这在 CPU 周期中稍微快一些。这意味着计数将从 0 开始,并且始终达到元素的长度(不包括最后一个元素)。

此外,零的使用在指针算术中也很流行,您可以使用一个指向某些已分配内存的基指针,加上第二个指针,该指针位于距该基指针的偏移量处。在这里,使用值零将偏移量指向内存块的基址非常有意义。 (一般数组逻辑往往是基地址加上偏移量x记录大小。)

还有从零开始的月份数字?通常,许多编程环境将数据计算为自某些默认数据以来的天数。 1899 年 12 月 31 日是一个很受欢迎的日期,尽管还有很多其他日期用作基准日期。所有其他日期均从此基数偏移,并且仅存储为一个数字。分数将用于表示小时、分钟和秒,其中 0.25 表示 24/4 = 6 小时。因此,要将日期转换为真实日期,环境所要做的就是将此数字转换为真实日期。

但是,从 0 开始的数组和从 1 开始的月份值的组合确实会带来问题。要获取 9 月的月份名称,您必须从月份数组中获取第 8 项。一些开发人员会很乐意在获得名称之前减少月份数字。其他人更喜欢将月份更改为从零开始的内容,因为人们只想知道名称,而不是数字。以上纯属个人观点。

关于date - 从零开始的月份编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1453043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com