2038年問題

出自維基百科,自由嘅百科全書
跳去: 定向搵嘢
2038年問題示範:第一行係 time_t數值嘅二進制表示;第二行係十進制表示;第三行受影響嘅電腦理解嘅時間;第四行係實際時間

2038年問題(又叫Unix 千年蟲Y2K38Y2K+38Y2.038K)係指因為 Unix 操作系統嘅計時方法而可能搞到一啲軟件2038年出錯。好簡單咁講,因為 Unix 有正負整數卅二時間限制,即係由1970年1月1號0時0分0秒 [1],再過2³¹咁多秒,約莫去到2038年初,日子會跳「返轉頭」,搞到啲軟件唔知係幾時,啲嘢就錯晒。

卅二爻時間限制[編輯]

喺 Unix 系統同埋啲 Unix-like 嘅系統,係用嚟嚟計時間,每秒用一爻(Bit)嚟代表。用嚟代表時間嘅 data type 叫 time_t,喺 Unix 上面,定 time_t 做一個正負整數(signed integer),有 32 爻咁大,有一啲去到 64 爻咁大(係近年 64 bit CPU 出現之後嘅事)。喺 Unix 上面,time_t = 0 規定咗係 1970 年 1 月 1 號 0 時 0 分 0 秒。所以,當 time_t = 10001,時間就係 1970 年 1 月 1 號 1 時 0 分 1 秒。如似類推,響 2 嘅 31 次方(即 2147483648)咁多秒之係,所有可以代表時間嘅整數都用晒,2038 年 1 月 19 號 03 點 14 分 7 秒就係最後可以代表得倒嘅時間。

點樣搞返掂[編輯]

參考[編輯]

連結[編輯]