32bit, 64bit で扱える値について
2^32 は何バイト?
4GB = 4096MB = 4194304KB = 4294967296B
2^64 は何バイト?
16EB = 16384PB = 16777216TB = 17179869184GB = 17592186044416MB = 18014398509481984KB = 18446744073709552000B
2^32 秒は何年?
136年70日6時間28分16秒
→ signed なのでこの半分、約68年が通常の int で扱える期間。
1970年 + 68年 = 2038年 で 2038 年問題が出てくる。
2^64 秒は何年?
5849億4241万7355年26日6時間53分52秒
注意点
上記は純粋に 32bit, 64bit で扱える値を示したが実際はプラスマイナスの符号がつくので扱える値はその半分になる。
まとめ
64bit 化して 2038 年問題を回避したところで西暦2924億7120万0647年問題が起こる。