重磅出刊

《江南Style》如何衝破YouTube的計數器

南韓明星Psy的《江南Style》影片,其熱門程度已難以估算,至少在YouTube修改程式之前是如此。

韓國-江南style-Psy-youtube 圖片來源:flickr.com/photos/koreanet/8037752508
其他
  • 天下Web only
加入Google偏好來源 在Google搜尋優先看到天下

那段影片的播放次數可望超過2,147,483,647,超過之後,YouTube便無法紀錄更高的次數。不過,專家作了一些修正,在播放次數達900萬兆次之前都不會有問題。為何YouTube的計數有此上限?

想知道答案,得從運算的最基礎說起。數位電腦內的所有數字,都是以二進位數字、亦即位元來表現。十進位制使用十個數字(0至9),二進位制則使用二個數字(0和1);八位元二進位數稱作一個位元組,可以顯示0至255的數字;更大的數字則以數個位元組來表現,二個位元組(16 位元)可以代表0至65,535,四個位元組(32位元)可以代表0至4,294,967,295,以此類推。YouTube創立之時,程式設計師決定以32位元儲存觀看次數,在當時,那是相當合理的選擇。

不過,觀察力敏銳的讀者會發現,YouTube的觀看次數上限並非4,294,967,295,而是2,147,483,647。為何有此差異?該32位元數值實際上是有號整數,表示範圍為-2,147,483,648至2,147,483,647;YouTube不必計算負的觀賞次數,但部分程式語言和資料庫要求使用有號整數,因為有能力儲存正值和負值相當有用。

因此,YouTube的觀賞次數上限為20多億,亦即32位元有號整數的最大表現值。程式人員為了解決這個問題,現在改用64位元有號整數,讓最大觀賞次數增至9,223,372,036,854,775,807,亦即超過900萬兆次。

廣告

有此問題的不是只有YouTube:其他數年前建造的系統,也都有這種數字溢位問題。Unix作業系統其及各種支系及衍生作業系統,負責Anoird、iPhone、麥金塔電腦及大多數網路伺服器的運作,它們會在格林威治標準時間2039年1月19日03:14:07之時,無法繼續計算時間。

Unix內定的計算時間方式,是從1970年1月1日午夜起算,以32位元有號整數計秒,無法計算2,147,483,647以上的秒數,進而創造了「2038年問題」,就像千禧蟲一樣。

現代版本的作業系統改以64位元有號整數計秒,解決了這個問題,但古早裝置或使用古早軟體的裝置,可能會難以預期地出現錯誤。或許,到那個時候,Psy的影片觀賞次數也會超過900多萬兆次的上限。(黃維德編譯)

©The Economist Newspaper Limited 2014

經濟學人英文全文

你可能有興趣
廣告
最新訊息
AI x 天下協作每日精選8則,省時省力輕鬆看懂天下事
訂閱天下雜誌電子報

天下雜誌當期內容的精華與延伸,每周三發送最具時效性的深度內容