亚洲v欧美v日韩,精品视频一区二区三区在线观看,精精国产XXXX视频在线直,91国在线高清视频

    1. <dfn id="7gofa"></dfn>
    2. <object id="7gofa"><tt id="7gofa"></tt></object>

        游戲鳥手游網(wǎng),重度移動(dòng)游戲垂直門戶!

        最新游戲 | 最新軟件 | 游戲更新 | 軟件更新 | 推薦游戲 | 推薦軟件 | 合集排行
        您當(dāng)前位置:游戲鳥手游網(wǎng) > 大陸新聞 > 解釋為什么iPhone時(shí)間調(diào)整到1970就變磚頭

        解釋為什么iPhone時(shí)間調(diào)整到1970就變磚頭

        發(fā)布時(shí)間:

        你或許已經(jīng)得知,在 iPhone 5s 以上的 64 位 iOS 設(shè)備上,把時(shí)間調(diào)整到 1970 年 1 月 1 日,甚至 1970 年的任何時(shí)間,都會(huì)直接讓 iPhone 變磚……

        希望你不是通過親自嘗試才了解到的……

        事實(shí)上,你不需要特別深入的計(jì)算機(jī)知識(shí),就可以明白為什么 iPhone 將時(shí)間調(diào)到 1970 年會(huì)變磚:

        擁有豐富的 iOS 和 Mac 設(shè)備 Bug 研究經(jīng)驗(yàn)的技術(shù)人士 Tom Scott 認(rèn)為,這是 iOS 系統(tǒng)背后的 UNIX 時(shí)間戳的整數(shù)下溢(Unix Epoch Integer Underflow)所導(dǎo)致的問題。

        解釋為什么iPhone時(shí)間調(diào)整到1970就變磚頭

        為此,我們撰寫了一份文字版的傻瓜說明,告訴你為什么 iPhone 時(shí)間調(diào)到 1970 年會(huì)變磚。

        UNIX 時(shí)間

        UNIX 時(shí)間是當(dāng)年的計(jì)算機(jī)工程師們?yōu)榱嗽谙到y(tǒng)中更加清楚明了表達(dá)時(shí)間,所引入的一個(gè)設(shè)定。

        正常人表達(dá)時(shí)間是這樣的:2016 年 2 月 17 日 下午 12:54:41

        UNIX 系統(tǒng)表達(dá)時(shí)間是這樣的:1455684881

        你可能會(huì)問:為什么計(jì)算機(jī)不能像正常人那樣表達(dá)時(shí)間呢?

        如果你學(xué)過中學(xué)地理可能會(huì)明白,由于全世界有 24 個(gè)時(shí)區(qū),每個(gè)時(shí)區(qū)在同一時(shí)刻的時(shí)間都不一樣,結(jié)果導(dǎo)致如果計(jì)算機(jī)系統(tǒng)像人一樣記錄時(shí)間將會(huì)異常的復(fù)雜,導(dǎo)致各種各樣的故障。因此,你也可以理解為,UNIX 程序員們?yōu)榱耸∈聝海_發(fā)了一個(gè)小程序……在這個(gè)程序的基礎(chǔ)上,UNIX 系統(tǒng)再通過你的電腦或手機(jī)所處的地理位置計(jì)算時(shí)區(qū),告訴你正確的時(shí)間。

        具體來說,協(xié)調(diào)世界時(shí) 1970 年 1 月 1 日 0 時(shí) 0 分 0 秒被設(shè)定為 UNIX 時(shí)間的“零時(shí)”。上面那組數(shù)字的意義:現(xiàn)在距離 1970 年 1 月 1 日 0 時(shí) 0 分 0 秒,過了多少秒。

        這個(gè)系統(tǒng)一直沿用至今。

        明白 UNIX 時(shí)間,繼續(xù)往下講你就能明白了。

        二進(jìn)制、位元系統(tǒng)、整數(shù)溢出和整數(shù)下溢

        看上去超級(jí)復(fù)雜的四個(gè)詞……但別著急,一步一步看你就能看懂。

        計(jì)算機(jī),包括 PC、手機(jī)等等,采用二進(jìn)制(0 和 1 )來表達(dá)一切,因?yàn)檫@意味著計(jì)算芯片上每一個(gè)晶體管的兩個(gè)狀態(tài):關(guān)和開。所有調(diào)到 1970 年而變磚的 iOS 設(shè)備都是 64 位的。這意味著,這臺(tái)設(shè)備最多可以儲(chǔ)存處理 64 個(gè)二進(jìn)制位元,也就是 64 個(gè) 0 或 1。

        舉個(gè)例子:我在寫到這篇文章的這一段的時(shí)候,查了一下當(dāng)前的時(shí)間:

        東八區(qū) 2016 年 2 月 17 日 下午 12:04:51

        然后我拿這個(gè)時(shí)間到 UNIX 時(shí)間轉(zhuǎn)換器里轉(zhuǎn)換了一下,得到:

        1455681891

        再用十進(jìn)制轉(zhuǎn)二進(jìn)制,得到:

        01010110110000111111000101100011,

        你能看到這段二進(jìn)制數(shù)是 32 位的——32 個(gè) 0 或 1。這是因?yàn)?,直?2038 年 1 月 19 日的凌晨 3 時(shí) 14 分之前,我們的時(shí)間在計(jì)算機(jī)里都可以用 32 位的 UNIX 時(shí)間系統(tǒng),也就是 32 個(gè) 0 或 1 來表示。

        數(shù)位太多可能觀察起來有點(diǎn)復(fù)雜,不如我們找一個(gè) 2 位的系統(tǒng)來說明一下。等號(hào)前面是二位數(shù),等號(hào)后面是十位:

        00 = 0

        01 = 1

        10 = 2

        11 = 3

        這意味著一個(gè) 2 位的系統(tǒng)最高能計(jì)的整數(shù)是 3,這個(gè)數(shù)字在計(jì)算機(jī)學(xué)里叫做“二進(jìn)制寄存器寬度”。

        再找一個(gè) 4 位的系統(tǒng):

        0000 = 0, 0001 = 1, 0010 = 2, 0011 = 3, 0100 = 4, 0101 = 5….

        以此類推,1111 = 15

        一個(gè) 4 位 系統(tǒng)最高能計(jì)的整數(shù),也即其二進(jìn)制寄存器寬度是 15。(更方面計(jì)算二進(jìn)制寄存器寬度的公式為 2 的 n 次方 – 1,其中 n 等于系統(tǒng)的位數(shù)。)

        現(xiàn)在你明白計(jì)算機(jī)系統(tǒng)的位元系統(tǒng)了!那么整數(shù)溢出是怎么回事?

        如果你在一個(gè) 2 位的系統(tǒng)上嘗試計(jì)十進(jìn)制的“4”,會(huì)發(fā)現(xiàn)系統(tǒng)從“3”的 11 變回了 00;同理,如果你在一個(gè) 4 位的系統(tǒng)上嘗試計(jì)十進(jìn)制的“16”,會(huì)發(fā)現(xiàn)系統(tǒng)變回了 0000,這便是“整數(shù)溢出”。

        再同理,如果你在一個(gè) 4 位的系統(tǒng)上嘗試計(jì)負(fù)數(shù),比如 -1 的話,系統(tǒng)會(huì)從 0000 跳到 1111,也就是十進(jìn)制的“15”。這是因?yàn)檫@個(gè)整數(shù)格式不支持負(fù)數(shù),也就是我們討論的“整數(shù)下溢”。

        Tom Scott 用電腦游戲《文明》初代里的甘地來解釋這個(gè)不算 bug 的 bug:游戲初始時(shí),印度執(zhí)政者甘地的進(jìn)攻值只有 1(準(zhǔn)確反映了現(xiàn)實(shí)世界里甘地的“非暴力”哲學(xué)思想)。然而在游戲進(jìn)行中如果不斷降低甘地的進(jìn)攻值,降低到 0 ,進(jìn)而降低到 0 以下的話,整數(shù)系統(tǒng)就亂了,導(dǎo)致甘地的實(shí)際進(jìn)攻值突然被提到最高——這是因?yàn)椤段拿鳌返南到y(tǒng)里采用的整數(shù)格式遇到了“整數(shù)下溢”……

        這么傻帽的問題為什么解決不了?

        事實(shí)上,已經(jīng)解決了……

        UNIX 整數(shù)格式的確有允許負(fù)數(shù)存在的版本,然而蘋果湊巧目前沒有在 64 位 iOS 設(shè)備的 UNIX 時(shí)間系統(tǒng)里采用這個(gè)版本,也就遇到了 1970 年的變磚 Bug……

        隨便抓起手邊任何一個(gè)智能設(shè)備(比如你的 64 位 iPhone),嘗試把系統(tǒng)時(shí)間往最早調(diào)(千萬別真的調(diào)),你會(huì)發(fā)現(xiàn)絕大多數(shù)的最早時(shí)間限制都在 1970 年 1 月 1 日。正如前面第一個(gè)小章節(jié)提到的,這是 UNIX 時(shí)間的起點(diǎn),也是你的 iPhone 能夠正確顯示的最早時(shí)間。

        day-freeze-bug

        系統(tǒng)時(shí)間調(diào)到 1970 年 1 月 1 日 0 時(shí) 0 分 0 秒,這個(gè)操作從計(jì)算機(jī)原理上本身不會(huì)直接導(dǎo)致你的 iPhone 變磚??梢坏┠愕氖謾C(jī)里存儲(chǔ)了之前的短信、電子郵件,或者已經(jīng)過期的日歷項(xiàng),這會(huì)導(dǎo)致系統(tǒng)在追溯時(shí)間時(shí)最終定位到了一個(gè)比 1970 年 1 月 1 日 0 時(shí) 0 分 0 秒更早的時(shí)間。

        這樣,你的 iPhone 的 UNIX 時(shí)間變成了一個(gè)負(fù)整數(shù)——也就是在二進(jìn)制數(shù) 64 個(gè) 0 的基礎(chǔ)上,發(fā)生了一次整數(shù)下溢。從 0000000000000000000000000000000000000000000000000000000000000000 變成了 1111111111111111111111111111111111111111111111111111111111111111。

        接下來,iPhone 會(huì)發(fā)現(xiàn)你老婆一秒鐘前給你發(fā)來的短信,發(fā)生在二進(jìn)制 64 個(gè) 1 所代表的 UNIX 時(shí)間中。換算男生類的時(shí)間,也就是 292277026596 年 12 月 4 日 15 時(shí) 30 分 6 秒。

        可能由于蘋果公司 iPhone 在設(shè)計(jì)的時(shí)候根本沒想過這臺(tái)設(shè)備能在大約 8000 年以后開機(jī),也就顯示不了超過五位數(shù)的年份,更別提一個(gè)十二位數(shù)的年份了。

        因此,你的 iPhone,就這樣變磚了。換句話說,你的 iPhone,跪倒在永生的宇宙萬物面前了。

        以上就是解釋為什么iPhone時(shí)間調(diào)整到1970就變磚頭全部內(nèi)容,希望對(duì)你有幫助。想查找更多游戲資訊,歡迎持續(xù)關(guān)注游戲鳥查看。
        復(fù)制本文鏈接攻略文章為游戲鳥手游網(wǎng)所有,未經(jīng)允許不得轉(zhuǎn)載。
        玩家要聞更多
        相關(guān)資訊更多
        熱門資訊更多
        1. 1 魔獸世界冰dk天賦加點(diǎn)推薦
        2. 2 NS2發(fā)布會(huì)匯總:港版售價(jià)3450港幣,馬車新作首發(fā)護(hù)航,支持4K120FPS輸出!
        3. 3 可能漲價(jià)?CDPR稱《GTA6》漲價(jià)對(duì)他們來說是有利的。
        4. 4 期待不?巴西博主曝Faker的S14冠軍皮膚選擇為永恩!
        5. 5 罵歸罵買歸買?育碧官宣《刺客信條:影》首日玩家數(shù)突破100萬人!
        6. 6 《云族裔(inZOI)》售價(jià)188元!3月20日開啟部分系統(tǒng)免費(fèi)體驗(yàn)!
        7. 7 大火!《雙影奇境》官宣發(fā)售僅一周,銷量已突破200萬份!
        8. 8 《天國:拯救2》新更新超過60G!一共修復(fù)超1000項(xiàng)BUG!
        玩玩用用更多
        精選資訊更多
        熱門專題全部>
        熱門標(biāo)簽全部>