本文へ移動

コンピュータ数値形式:2進数・8進数・16進数・整数・浮動小数点数

コンピュータと電卓における数値の表現方法を解説。2進数、8進数、16進数、整数符号化、固定小数点、IEEE 754浮動小数点数の用途、特性、トレードオフと主な違いを扱う。

コンピュータ数値形式とは、機械が数値を保存し、解釈する方法を定める形式である。現代のコンピュータと多くの電子電卓は、ハードウェアの段階では2進数を使用しており、すべての値は最終的に1と0で構成される。8進数や16進数などのより高水準の表記法は、人間が2進データを簡潔に表す手段となる。形式ごとに、表現できる範囲、精度、性能、人間にとっての解釈しやすさの間で異なるトレードオフがある。

一般的な形式とその特性

代表的な形式には、次のものがある。

  • 2進数 — 基数2であり、デジタル論理回路内部における基本的な形式である。ビットは、保存と処理のためにバイトやワードへとまとめられる。
  • 8進数 — 基数8(数字は0~7)。ワード長が3ビットの倍数である機械では、歴史的に便利な表記だった。
  • 16進数 — 基数16(数字は0~9およびA~F)。16進数の1桁が2進数の4ビットを表すため、プログラミングやデバッグで頻繁に用いられる。
  • 整数符号化 — 整数を表現する形式。代表的な方式には符号付き絶対値表現と2の補数表現があり、後者は算術回路を簡素化するため主流となっている。
  • 固定小数点数 — スケーリングした整数を保存して小数値を表す。予測可能な丸めと性能が重要な場合、たとえば組込みシステムや金融分野で有用である。
  • 浮動小数点数 — 符号、指数部、有効数字部(仮数)によって実数を表す。IEEE 754規格群は、ソフトウェアとハードウェアで広く使われる単精度(32ビット)や倍精度(64ビット)などの形式を標準化している。
  • 2進化10進表現(BCD) — 10進の各桁を個別に符号化する形式。10進数から2進数への変換に伴う丸めの問題を避けるため、一部の金融システムやレガシーシステムで使用される。

歴史と発展

初期の電子計算機は2進論理を用いていた。コンピュータ・アーキテクチャの発展に伴い、技術者は人間が2進数を読みやすくする表記体系を採用した。8進数と16進数は、2進数のビット群を簡潔に表す別名として登場した。20世紀後半に導入されたIEEE 754をはじめとする浮動小数点数の規格は、丸め、オーバーフロー、アンダーフロー、特殊値(無限大やNaNなど)について一貫した動作をもたらし、プラットフォーム間の移植性を向上させた。

用途、例と実用上の重要性

形式ごとに用途は異なる。整数は個数、添字、アドレスに用いられる。浮動小数点数は、広いダイナミックレンジが必要な科学計算、グラフィックス、シミュレーションに使われる。固定小数点数とBCDは、10進の正確さと決定的な丸めが不可欠な場面で使われる。16進数は、プログラマがメモリを調べる際、グラフィックスの色を表す際、またはビットマスクを表現する際に一般的である。形式間の変換、たとえば10進数と2進数、整数と浮動小数点数の相互変換は、コンパイラやライブラリにおける日常的な処理である。

区別と注目すべき問題

主なトレードオフには、精度と表現範囲の関係、および予測可能な演算と性能の関係がある。浮動小数点数は大きな表現範囲を提供する一方、丸め誤差や特殊な場合(非正規化数、NaN)を伴う。整数表現では、オーバーフローと負の値を正しく扱わなければならない。2の補数表現はハードウェアを簡素化するが、正の値と負の値で非対称な表現範囲となる。エンディアンはメモリ内のバイト順序に影響するが、抽象的な数値形式自体には影響しない。さらに技術的な詳細については、2進数表現と数値規格に関する一般的な資料を参照されたい。

数値形式の選択は、正確さ、速度、記憶容量、相互運用性といったアプリケーションの要件に左右される。一般的な方式とそのトレードオフを理解することは、プログラマ、技術者、利用者が作業に適した表現を選ぶ助けとなる。

関連項目

著者

AlegsaOnline.com コンピュータ数値形式:2進数・8進数・16進数・整数・浮動小数点数

URL: https://ja.alegsaonline.com/art/22326

共有