Knowledge:2038年問題とは

posted on 2005年7月25日 13:00 投稿者 Elfaria

2038年問題ってのは、

Cで時刻を1970年1月1日からの経過秒数で表現するときに使用されるtime_t型が、long int(符号付き32bit)の限界である2,147,483,647 を
2038年1月19日03時14分8秒(日本時間では同日12時14分8秒)に突破して負の値(要はバッファオーバーフロー)の状態になり、
プログラムがエラーになる可能性がある。

っていう問題ですね。

これはtime_t が long int(32bit) で実装されているのが問題で、64bit(long long int)にすると、西暦3000億年くらいまで使えるという…。

西暦3000億年…

使い切る前に人類滅亡してるかもよ?

宇宙歴になってるかもよ?

128bit表現になったら…
0xFF ←8Bit
0xFFFF ←16Bit
0xFFFFFFFF ←32Bit
0xFFFFFFFFFFFFFFFF ←64Bit
0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ←128Bit

もっと先を考えると?(長くなるので256Bitずつ改行しますね。: Edited at 05/07/29)
0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ←256Bit


0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ←512Bit


0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ←1024Bit

計算できません。
むしろ自分の頭がオーバーフロー。

Manual.Wikipedia.TrackBack :: 2038年問題 - Wikipedia

コメント