Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

1900 年以来的年份 + 7 位 = 2028 年损坏

Posted on 2023-10-13

去年 11 月,我列出了一系列“神奇数字”,其中包括一些时间/日期内容可能会被破坏的年份。 NTP 时代翻转有 2036 个,1 月份需要 32 位的 time_t 有 2038 个翻转,*以及 11 月的另一个 GPS 周翻转。

事实证明,我们还有一个更早的到来:2028 年!

看看今年会给你一个提示。现在是 2021 年,但另一种看待这一情况的方式是,我们已经过了 1900 年 121 年了。相当多的事物使用 1900 年作为纪元、基准年或只是某种偏移量。为什么?嗯,它们可能是在更简单的时代发明的,当时距 1900 年还不太远,而且它可以容纳更少的位。具体来说,到 2028 年,它只能容纳 7 位。

人们为什么要这么做?假设他们在当时的系统上可以使用的位有限。您至少需要 11 位来存储当前年份附近的值。而且,在当时看来,2028年可能还很遥远,根本不成问题,因为到时候这东西不可能还在用吧?

因此,如果有人使用 1900 年作为基准年,存储相对于此的年份,然后仅用七位(或八位,其中一位是符号位)来完成,那么它将在六年多一点的时间内溢出。接下来会发生什么取决于使用哪种方法,以及它是否应用某些类型的健全性检查。

最糟糕的情况是,我猜它可能会将“128 年”解释为“-127 年”,这将导致系统从 2027 年 12 月 31 日滚动到1773 年1 月 1 日。整洁的!

…

我最初发现这一点要归功于 HN 墓志铭 (!) 上的错误报告类型评论。那是关于 ISO 9660(CD/DVD 之类的东西)软件以及它如何处理年份的。

2015 年,在 Linux 内核中发现了类似的东西(并且似乎已经被修补)。

出于好奇,我去寻找更多信息,并确实找到了对同一问题的参考,如果您想让 HP 3000 保持活力,这些参考可能会很有用。您知道带有300 磅以上磁盘驱动器的东西吗? (如果你知道,你就知道。)

除了这些页面之外,没有太多关于该主题的内容。

当然,维基百科在时间格式化和存储错误的史诗列表中确实有 2028 年,但它只谈论 70 年代的系统。它根本没有提到 ISO 9660——目前是这样。也许知情者会更新它,然后这个评论就会过时。

如果您负责一个可能以这种方式存储多年的位受限系统,那么您应该让每个人都去看看会发生什么。也许可以尝试将时间提前到 2028 年 1 月 1 日,看看它是否仍然快乐,或者是否决定去 18 世纪参加派对。

…

虽然我引起了你们的注意,但对于年轻人来说:只要我们谈论的是点点滴滴和岁月,你们就不一定是清楚的。您可能已经注意到,11 位将保存全年,就像 2021 年一样,不需要偏移。也许您甚至设计了一个系统,基于此将数据缩减至最小存储大小。

十一位!奢华!啊,好吧,猜猜2048年会发生什么?是的!

…

最后,对于那些还不知道的人来说,一件随机的事情:尝试 log2(n) 来感受一下二进制数有多大。很整洁,对吧?

原文: https://rachelbythebay.com/w/2021/11/05/sevenbits/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Lou Plummer
  • Luke Wroblewski
  • Matt Stoller
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme