心參觀。
當然了,首富先生也來到了現場這次測試就是他在幕後推動的。
上午9點30分,兩家銀行測試系統的時間,已經調到了1999年12月31日的23點30分。
看著大鐘的指標一分一秒地移動著,等得不耐煩的記者們,不禁暗自吐槽這個遊戲很好玩麼?難道是想提前體驗一下傳說當中的世界末日?
終於,模擬時間跨進了2000年。
然後,演示系統發出警報,並崩潰。
見聽到彙報的首富先生面露微笑,記者們無語了演示都搞砸了,你還心情不錯,這位首富先生可真是越來越難以捉摸了。
第0903章 割全球大戶的肉
看熱鬧者終歸屬於外行,瞭解內情之人可不會因為測試系統崩潰了,就認為演示搞砸了;恰恰相反,其揭示了“千年蟲”的真實存在和可能危害。
瞧著真正的目標群體,無不臉色凝重,主導這一切的首富先生,難免暗爽。
香江的銀行多如過江之鯽,雖然在1980年代銀行危機當中淘汰了一批,但大多屬於運營不規範的華資銀行,算是自尋死路地秋後算賬,而環境寬鬆的香江,做為世界金融中心之一的地位並沒有改變全球各個主要銀行,幾乎都在香江設有分支機構。
這就無形當中方便了把眼前這個活生生的實驗成果,傳遞給世界範圍內所有銀行的總部你們需要升級現有計算機系統,來防範“千年蟲”的危害了。
不得不說,為了製造這個it商機,唐煥不是一般地煞費苦心。
要知道,想找一個像香江這樣有國際地位的金融中心,來做演示平臺並不容易;而讓恒生銀行和新鴻基銀行這樣運營公認優秀的機構,冒著影響聲譽的風險,聯合當試驗品,也沒有那麼簡單但不找如此有份量的例子,又怎麼會有說服力?
各家銀行代表的反應,證明了本次演示取得了理想的震撼效果。
所謂的“千年蟲”,源於計算機處理資料的固有方式自然界的數字是連續而無限的,而計算機空間只能離散而有限地表示。
比如,用1個位元組即8位元,表示正整數,那隻能描述出0到255總共256個數字。
這個現象的實質就是,在編制軟體程式解決現實問題的時候,bug往往出現在處理極限資料的時候,諸如資料溢位等等。
在此類情況下,用1個位元組表示的正整數255,再往上加1的話,計算機如果不主動報錯,那返回的結果往往是0因為真正的二進位制數字串裡進位到最高位的那個“1”,計算機無法表示,直接截斷,只剩下了後面8位的“0”。
這只是一個最抽象、最基礎的原理,實際的情況要複雜得多。
在1980年代中期以前,尤其大型機開始興盛的1950到1960年代,不論記憶體還是硬碟,儲存裝置非常昂貴;能夠接受的廉價解決方案,也就是穿孔卡片和磁帶。
舉一個普通人最容易接觸到的例子,1977年推向市場的家庭電視遊戲機雅達利2600,記憶體僅為128個位元組。
迫於如此沉重的成本壓力,計算機表示年月日,通常只有6位,形如1970年1月1日為“700101”,年份的前兩位“19”被省略掉了。
再舉一個更廣為熟知的例子,那就是原本時空裡中國的一代居民身份證相比於後來的二代居民身份證的18位編碼,少了3位,其中2位就是省去了4位年份數字的頭兩位。
基於那個數字溢位原理,這種計算機表示時間方法,到了2000年的時候,得到的結果很可能就是1900年。
由此產生的危害有多嚴重?
就銀行領域而言,不好意思,你要倒閉了,儲戶利息憑空增加幾十年;就稅務領域而言,對不起,你破產了,欠國家100年的稅;就電信領域而言,你要是敢在1999年12月31日23點59分打兩分鐘跨世紀的電話,那麼恭喜你,電信公司給你的賬單,很可能就是一輩子打電話的賬單“100年減去2分鐘”。
諸如此類的情況,還只是計算機自動執行程式造成的可預料危害,而由於像採用不嚴格數學演算法計算閏年等等的程式設計師人為失誤,會讓具體情況更加變幻莫測。
另外,軟體系統當中,還有一個習慣,即把“99”之類的極限數字,用於表示檔案“刪除”、“廢棄”等特殊含義。
所以,一旦2000年臨近,問題不僅限於莫名其妙地計算錯