あらまあ!
これは、プログラマならぜひ覚えておくべき情報だ。PSY(サイ)のGangnam Style(カンナムスタイル)は、視られた回数があまりにも多いので、YouTubeのビューカウンタを壊してしまった。それは、32ビットインテジャーの値域をぶち破った、ホントに初めてのビデオ、という名誉を勝ち取った。
YouTubeはこの件に関してこう述べた:
[一つのビデオが32ビットインテジャーの最大値(2,147,483,647)よりも多く視られるとは、考えもしませんでしたが、でもそれはPSYがまだいないころの話です。“カンナムスタイル”は、視られた回数が多すぎるので、64ビットインテジャー(9,223,372,036,854,775,808)にアップグレードしなければなりませんでした。PSYのビデオのカウンターの上をホバーすると、ちょっとした数学のマジックを見られます。YouTubeにはもっともっと大きな数が現れると思われますので、今から覚悟しておきましょう。]
でも、だからどうした?と言いたいのだけど。プログラムを書くときは、数値のようなデータをどう保存するかを、考えなければならない。32ビットインテジャーでよいのか?それとも64ビットインテジャーか? 32ビットなら使用するメモリも小さいが、−2,147,483,648から2,147,483,647までの数しか保存できない。64ビットインテジャーは大量のメモリを使うけど、−9,223,372,036,854,775,808から9,223,372,036,854,775,807までの数を保存できる。
(* ここでは話を簡単にするためにあえて、signedとunsigned(有符号整数と無符号整数)の違いを忘れたふりをしている。)
パックマン(Pac Man)のキルスクリーンをご存知だろう。プレーヤーのレベルが256を超えると、画面がめちゃくちゃになる。これも同じ問題だ。こちらは32ビットじゃなくて8ビットの数だけど。
昨日(米国時間12/2)の記念すべき事件のあと、YouTubeはコードを書き換えたので、今では最大9クウィンティリオン(quintillion)までのビューをサポートしている。安心してビデオを見よう。
[原文へ]
(翻訳:iwatani(a.k.a. hiwa))