より高度な内容-小数の基数変換、補数、浮動小数点など-に関しては、「データの内部表現(数値・上級) 」(hs-naibu-suuchi-x)を参照してください。
10進数、2進数、16進数
人間は0~9の10個の数字を用いた10進法を用いていますが,「コンピュータは2進法だ」といわれます。入出力のときは10進法になっていますが,コンピュータ内部では数値は2進法で取扱われているのです。
10進法での123は(これを12310のように表記する),
1×100+2×10+3
の意味です。もっと数学的な表現をすれば,
1×102+2×101+3×100
となります。
それと同様に2進法では,たとえば11012は
1×23+1×22+0×21+1×20
=1×8+1×4+0×2+1×1
=1310
となります。
それで,10進法と2進法の変換を理解する必要があります。以下,その方法を学習しますが,次の表を覚えておくと便利です。
10進数 2進数 16進数 10進数 2進数 16進数
0 0 0 8 1000 8
1 1 1 9 1001 9
2 10 2 10 1010 A
3 11 3 11 1011 B
4 100 4 12 1100 C
5 101 5 13 1101 D
6 110 6 14 1110 E
7 111 7 15 1111 F
10進法、2進法などを一般化して、n進法を定義することができます。そして、このnを基数、異なる進数に変換することを基数変換といいます。
コンピュータ内部では2進数なのですが,2進数では桁数が非常に長くなるので,人間が取扱うのには不便です。それで2進数を16進数に変換して表記することが多いのです。上表のように、4ビットは1桁の16進数、1バイト(8ビット)は2桁の16進数で表されます。
10進数は0~9の10個の数字があるから10進法なのですし,2進数は0と1の2個の数字しかないので2進法なのだともいえます。すると16進数では16個の数字が必要になります。0~9までは10進数と共通にし,10をA,11をB,・・・,15をFとしています。
111 1011
↓ ↓
7 B
1101 0011
↓ ↓
D 3 ・・・答 D316
D 3
↓ ↓
1101 0011
16 )123 余り
16 ) 7 11→B
0 7