コンピュータの数値表現
このコンピュータの数値表現(コンピュータのすうちひょうげん)の記事では、現代のコンピュータ、つまりデジタルコンピュータにおける数値の表現方法について解説する。
低水準言語では、符号の有無や固定小数点か浮動小数点かを気にする必要がある。例えば浮動小数点の加算なのか整数の加算なのかによって、使用する命令が全く違ったものとなる。
LISPやPythonといった高水準言語では数値のデータ型はより抽象的であり、rational、bignum、complex などがある。それらの言語では、低水準言語と比べ、より抽象化され扱いやすいものとしてそれらの値が提供される。しかし「どんな数値であっても算術演算を正しく処理することができるはず」というのはただの幻想にすぎない。
コンピュータでは真の実数を扱うことはできないのだから、これらのデータ型でも同様に、それぞれの性質に注意して扱わねばならないことに違いは無い。演算子オーバーロードなどによって、符号無し整数、符号付整数、浮動小数点数、複素数など、複数のデータ型に対して、同じ見た目の式になるような言語もある。
オクテット(英: octet)は8個のビットからなるデータ単位である。多くのコンピュータにおいて1バイトは8バイトであり、従ってバイトとオクテットは同義語となる。 しかしコンピュータネットワークの分野ではアーキテクチャに依存しないデータ単位が必要となるため、オクテットのような単位が主に使われ、(特定のアーキテクチャでは同義語であっても)バイトとは区別される。
ニブル(英: nibble)は4個のビットからなるデータ単位である。従って、オクテットの半分がニブルであり、1オクテットは2ニブルである。ニブルは16通りの状態を表わせる。0 から 15 の整数との対応例を表に示す。