【科普】什么是2038年問(wèn)題?是不是32位系統(tǒng)到了2038年就炸了?這又是一個(gè)怎

一、什么是2038年問(wèn)題
2038年問(wèn)題是指在使用POSIX時(shí)間的32位計(jì)算機(jī)應(yīng)用程序上,格林尼治時(shí)間2038年1月19日凌晨03:14:07(北京時(shí)間:2038年1月19日中午11:14:07)之后無(wú)法正常工作。
在大部分的32位操作系統(tǒng)上,此“time_t”數(shù)據(jù)模式使用一個(gè)有符號(hào)32位整數(shù)(signed int32)存儲(chǔ)計(jì)算的秒數(shù)。依照此“time_t”標(biāo)準(zhǔn),在此格式能被表示的最后時(shí)間是第2147483647秒(代表格林尼治時(shí)間2038年1月19日凌晨03:14:07)。下一秒,即格林尼治時(shí)間2038年1月19日凌晨03:14:08,由于32位整型溢出,時(shí)間將會(huì)被“繞回”(wrap around)成一個(gè)負(fù)數(shù),變成了第 -2147483648 秒(代表格林尼治時(shí)間1901年12月13日20:45:52),造成應(yīng)用程序發(fā)生嚴(yán)重的時(shí)間錯(cuò)誤,而無(wú)法運(yùn)行。
二、測(cè)試結(jié)果
測(cè)試結(jié)果是一切正常;這里我給出了兩種可能的猜測(cè):
????猜測(cè)1:2038年問(wèn)題只有在硬件與軟件的共同作用下才會(huì)觸發(fā);如果在64位硬件上安裝32位系統(tǒng),那么系統(tǒng)與程序?qū)⒉粫?huì)遇到2038年問(wèn)題;
????猜測(cè)2:當(dāng)時(shí)在調(diào)整BIOS時(shí)間時(shí)有符號(hào)32位整數(shù)(signed int32)存儲(chǔ)計(jì)算的秒數(shù)沒(méi)有發(fā)生突變,導(dǎo)致2038年問(wèn)題沒(méi)有觸發(fā)。
由于現(xiàn)在我們沒(méi)有這兩個(gè)條件:
一、真實(shí)的2038年
二、一臺(tái)純32位平臺(tái)電腦(32位CPU)
所以2038年問(wèn)題需要什么條件才能觸發(fā),在GMT 03:14:08 2038/1/19這一秒到來(lái)之前將會(huì)一直是一個(gè)迷;也歡迎大家在評(píng)論區(qū)上留下自己的答案。