読者です 読者をやめる 読者になる 読者になる

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年問題が起こる。