2038年問題

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
記事をシェア:
X(旧Twitter)にシェアする
Threadsにシェアする
Facebookにシェアする
はてなブックマークにシェアする
LINEにシェアする
ナビゲーションに移動 検索に移動
白銀のミヤコ様.pngEnpedia:おすすめ項目 (仮)に登録されています。
ピックアップを編集

2038年問題(2038ねんもんだい)とは、C言語で使われている計時方法time_tをシステム側において符号付き32ビット整数型で実装している場合に、time_tの起点である協定世界時閏秒は考慮しない、以下同様)1970年1月1日0時0分0秒から231(秒)後の2038年1月19日3時14分8秒に発生する問題のことである。これを過ぎるとシステムに不具合が発生する可能性がある。最上位の1ビットが1になると「-(マイナス)」の意味になってしまう可能性があるため、時刻が一挙に1901年まで巻き戻ってしまうのである。かつては符号付き32ビット整数型が主流であり、限界の半分に達した2004年に2つの時刻の平均を求める計算で問題が発生したこともあり、対策が進んだ。Siriはこの時間を「人類が滅亡する時間」と予測している。

解決策[編集]

現在のところ、ビット数を増やす方法しかない。現在では符号付き64ビット整数型が主流となっており、この形式であれば少なくとも人類が生存しているうちは問題は発生しないと考えられる。以下に、考えられる代替整数型と、その整数型で桁あふれが生じる日時を記す。日時は[1]による。

  • 符号なし32ビット整数型...1970年1月1日0時0分0秒から232(秒)後は2106年2月7日6時28分16秒。実際にはこの方法で対応したものもいくつかあったが、ドラえもんが生まれる前には再び問題が発生してしまう。
  • 符号あり64ビット整数型...1970年1月1日0時0分0秒から263(秒)後は292277026596年12月4日15時30分8秒。現在主流の方法である。これは現在から3000億年近く後にあたり、とうの昔(現在から80億年後)に地球を呑み込んだ太陽白色矮星となっており、更に宇宙の膨張により地球上から局部銀河群外の銀河は一切見えなくなって2000億年が経っている。人類が太陽系外の惑星に移住し生き延びている可能性は0ではないが、そのころには桁数など関係なくなっているだろう。
  • 符号なし64ビット整数型...1970年1月1日0時0分0秒から264(秒)後は584554051223年11月9日7時0分16秒。これは現在から5800億年以上後にあたる。

(以下、符号ありのみ列挙する)

  • 符号あり128ビット整数型...1970年1月1日0時0分0秒から2127(秒)後は5391559471918239497011222876596年4月18日16時2分8秒。これは現在から約5.4×1030年後に相当し、この頃には宇宙空間にある全ての恒星は燃え尽き、宇宙には黒色矮星中性子星ブラックホールしか天体は存在しないと考えられている。
  • 符号あり256ビット整数型...1970年1月1日0時0分0秒から2255(秒)後は1834652618499343590337415746119712509834124421548072260582352567003896年1月25日17時6分8秒。これは現在から約1.8×1069年後に相当する。この頃には陽子崩壊が終了して宇宙に存在する天体はブラックホールのみとなっており、それも小型のものはすでにホーキング放射によって蒸発していると考えられている。
  • 符号あり512ビット整数型...1970年1月1日0時0分0秒から2511(秒)後は212438259720751818800086031727744905900280955850748725316113568948638702972225374884143980352837996326293360939714425696970890642606208767349168787年8月8日19時14分8秒。これは現在から約2.1×10146年後に相当する。この頃にはブラックホールも全て蒸発し、宇宙は熱的死を迎えている。暗黒の中を光子などの素粒子が飛ぶだけの寂しい宇宙となっている。以下も同様の状況である。
  • 符号あり1024ビット整数型...1970年1月1日0時0分0秒から21023(秒)後は2848331383307101249400298848236396109513328440183808900071053775373056875161786270307545502531542590379452899631615140740759591877162544444926864778313731382830760927494922280141349196228553602379803394068048868737990771135667077122561030459165182321210085668042121086978667108573725946422762190875540年10月22日23時30分8秒。これは現在から約2.8×10300年後に相当する。
  • 符号あり65536ビット整数型...1970年1月1日0時0分0秒から265535(秒)後は現在から約3.2×1019720年後に相当する。
正確な日時(年は2万桁弱あります)

脚注[編集]

関連項目[編集]