なぜ2の16乗は65536なのか?限界値の謎と一瞬で解く暗算術

なぜ2の16乗は65536なのか?限界値の謎と一瞬で解く暗算術

なぜ2の16乗は65536なのか?限界値の謎と一瞬で解く暗算術について知っておくべき 事実を分かりやすい構成で解説いたします。

ITの歴史において、一般のビジネスパーソンが最も強烈に「65536」を体感させられた現場が、表計算ソフトMicrosoft Excelでした。

Excel 97〜2003を縛り続けた「65536行の壁」

ベテランの実務家であれば、巨大なCSVファイルを開こうとした際、「ファイルが完全に読み込まれていません」という非情な警告を目にした経験があるはずです。これこそがExcel最大行数65536の真相です。

当時のExcel内部ファイル構造(BIFF8形式)では、行番号のインデックス管理に符号なし16ビット整数を採用していました。そのため、ワークシートの限界は理論上「2の16乗=65,536行(行番号1から65536まで)」に固定されていたのです。2007年の大型アップデート(xlsx形式導入)によって行インデックスが20ビット(2の20乗=1,048,576行)へ拡張され、この制約は大幅に緩和されましたが、古い受発注システムや基幹連携CSVでは、今なお「65536件以内でのファイル分割」を求める安全マージン仕様が散見されます。

ネットワーク通信を仕分ける「ポート番号の上限」

インターネットを安全かつ正確に利用する上で欠かせないのが、ポート番号上限の理由です。Webサーバーにアクセスする際の「80番(HTTP)」や「443番(HTTPS)」、メール送信用「587番」などでおなじみのポート番号ですが、利用できる番号は世界共通で「0番から65535番まで」と定められています。

これは、TCP(Transmission Control Protocol)およびUDP(User Datagram Protocol)の規格を策定した通信ヘッダフォーマット(IETF RFC 793など)において、送信元ポートおよび宛先ポートを記録する枠が「16ビット」と定義されているためです。もしこの枠を32ビットに広げていれば約43億個の通信口を確保できましたが、パケットのデータ転送効率を最大限に高めるため、必要最小限かつ十分な通信口として「65536通り」が選ばれました。

高橋 健太
著者

高橋 健太

Webメディアでの編集・執筆歴10年。読者の好奇心を刺激するストーリー作りを心がけています。