数値の内部表現
ノイマン型コンピュータで数値を取り扱うには、数値をビット列にする必要がある。
2進数にするのが一番簡単な方法
論理回路で2進数の加算器は比較的簡単にできる。
10進数のままで扱う方法もある。
基数を変えると変換誤差が出てくる。
10進数と2進数は整数部のみであれば、特に問題なく変換できる。
10進数と2進数は小数部になると変換誤差が現れる。
10進数の 0.1 の2進数表現は $ 0.0\dot{0}01\dot{1} (0011の繰り返し。循環小数)となる。
整数の表現方法
先頭を符号ビットとして正または0か、負かを指定するのが一般的
負は2の補数にするのが一般的。
8ビットで、-1 を 11111111 とする。
2の補数を使うと、正の値と同じ加算器で加算を扱うことができる。
巨大な数、微少な数の表現方法
整数で巨大な数または微少な数を表すのは困難。
このため、浮動小数点という考え方が採用されている。
手書きの数値でも、指数表現を使うが理屈は同じ。
仮数部と指数部に分けて、指数部で小数点が何桁ずれているかを示す。(これが浮動小数点と呼ばれる由来)
浮動小数点は標準として IEEE 754 が使われている。
BCD表現
二進化十進数 (BCD、Binary-coded decimal)
16進で4bit分を使って表現する。
0(0000)から9(1001)までを使う。A~Fを使わない。
これにより10進2桁を1バイトで表現できる。
単純加算はできない。加算してA~Fが現れたときに補正する必要がある。
文字列による表現
単純に位取り記数法を使い、1文字1桁で表現する方法
"123.456"
符号の付け方
負数の表現方法には多数のバリエーションがある。
-123.456
123.456-
▲123.456
(123.456)
符号が正の場合と0の場合にどうなるべきか
以下のようなバリエーションがある。
負でなければ正符号を付ける。
0と負でなければ正符号を付ける。
0と負でなければ何も付けない。
0と負でなければ空白を付ける。