コンピュータの世界は2進数だが、人間が見てもわかりやすいように3桁ごとにまとめて
8進数で表したり、4桁ごとにまとめて16進数で表したりする。
2進数の“2”,8進数の“8”,10進数の“10”,16進数の“16”をその表現の
基数という。
 ̄ ̄
2進,8進,10進,16進数の対応表を以下に示す。
2進数 8進数 10進数 16進数
0 0 0 0
1 1 1 1
10 2 2 2
11 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
10000 20 16 10
N進数の各桁には重みが付く
右から順に“Nの0乗”
“Nの1乗”
“Nの2乗”
X桁目は “Nの(X−1)乗”
という重みになる。
【N進数の小数表現】
考え方はN進数全てに共通である。
小数点以下は左から順に“Nの−1乗”=1/N
“Nの−2乗”=1/Nの2乗
“Nの−3乗”=1/Nの3乗
Y桁目は “Nの(−Y)乗”=1/NのY乗
という重みになる。
例)
10進数0.111の場合
小数点以下第一位の桁は、1/10(0.1)の位となる。
小数点以下第二位の桁は、1/100(0.01)の位となる。
小数点以下第三位の桁は、1/1000(0.001)の位となる。
0.1 =1/10 = 1/(10^1)
0.01 =1/100 =1/(10×10) =1/(10^2)
0.001=1/1000=1/(10×10×10)=1/(10^3)
例)
2進数0.111の場合
小数点以下第一位の桁は、1/2の位となる。
小数点以下第二位の桁は、1/4の位である。
小数点以下第三位の桁は、1/8の位である。
0.1 = 1/2 = 1/(2^1)
0.01 = 1/4 = 1/(2×2) = 1/(2^2)
0.001 = 1/8 = 1/(2×2×2)= 1/(2^3)
2進数 10進数に変換 10進数
 ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0.1 1/(2^1)= 1/2 0.5
0.01 1/(2^2)= 1/4 0.25
0.001 1/(2^3)= 1/8 0.125
よって、2進数0.111を10進数で表すと
0.5 + 0.25 + 0.125 = 0.875 になる。
例)
16進数0.111の場合
小数点以下第一位の桁は、1/16の位となる。
小数点以下第二位の桁は、1/256の位である。
小数点以下第三位の桁は、1/4096の位である。
0.1 = 1/16 = 1/(16^1)
0.01 = 1/256= 1/(16×16) =1/(16^2)
0.001=1/4096=1/(16×16×16)=1/(16^3)
16進数 10進数に変換 10進数
 ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄
0.1 1/(16^1) = 1/16
0.01 1/(16^2) = 1/256
0.001 1/(16^3) = 1/4096
よって、16進数0.111を10進数で表すと
1/16 + 1/256 + 1/4096
256/4096 + 16/4096 1/4096
= 273/4096 になる。
例)
10進数の123.456
123.456
=1*10^2 + 2*10^1 + 3*10^0 +
4*10^−1 + 5*10^−2 + 6*10^−3
=100 + 20 + 3 + 0.4 + 0.05 + 0.006
=123.456
となる。
小数の2進数,8進数,10進数,16進数の対応表を以下に示す
2進数 8進数 10進数 16進数
0.1 0.5
0.01 0.25
0.001 0.1 0.125
0.0001 0.0625 0.1
0.00001 0.03125
0.000001 0.01 0.015625
0.0000001 0.0078125
0.00000001 0.00390625 0.01
0.000000001 0.001 0.001953125
【2進数 (Binary Number)】
0と1の2種類の数字を使用する。
2桁以上の数については、各桁に2^0の重みが付加する。
例)
2進数の1001.1001を10進数で表す
1011.1001
=1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 +
1*2^−1 + 0*2^−2 + 0*2^−3 + 1*2^−4
=8 + 2 + 1 + 0.5 + 0.0625
=11.5625
となる。
【8進数 (Octal Number)】
0,1,2,3,4,5,6,7の8種類の数字を使用する。
2桁以上の数については、各桁に8の重みが付加する
例)
8進数の13.44を10進数で表す
13.44
=1*8^1 + 3*8^0 + 4*8^−1 + 4*8^−2
=8 + 3 + 0.5 + 0.0625
=11.5625
となる。
【16進数 (Hexadecimal Number)】
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
の16種類の数字を使用する。
2桁以上の数については、各桁に16の重みが付加する。
例)
16進数のB.9は
B.9
=11*16^0 + 9*16^−1
=11 + 0.5625
となる。
【10進整数をN進数に変換する】
10進整数をN進数に変換する場合は、Nで割りその答えをまたNで割るということを
0になるまで繰り返す。
あまりを下から上へ順に並べたものが変換した値となる。
例)
10進数の9を2進数に変換する
9÷2 = 4 あまり 1 ↑
│ │
┌─────┘ │
↓ │
4÷2 = 2 あまり 0 │
│ │
┌─────┘ │
↓ │
2÷2 = 1 あまり 0 │
│ │
┌─────┘ │
↓ │
1÷2 = 0 あまり 1 │
よって、10進数9を2進数で表すと1001になる。
 ̄ ̄ ̄ ̄
【10進小数をN進数に変換する】
10進小数をN進数に変換する場合は、Nを掛け小数点以下の部分だけに、またNを掛ける
ということを小数点以下が0になるまで繰り返す。
整数の部分を上から下へ順に並べたものが変換した値となる。
例)
10進数0.125を2進数に変換する
0.125 × 2 = 0.25 整数の部分 −> 0 │
小数点以下を再計算する │
0.25 × 2 = 0.5 整数の部分 −> 0 │
小数点以下を再計算する │
0.5 × 2 = 1.0 整数の部分 −> 1 ↓
小数点以下は0のため計算終了
よって、10進数の0.125を2進数で表すと、0.001になる。
 ̄ ̄ ̄ ̄ ̄
例)
10進数0.1を2進数に変換する
0.1 × 2 = 0.2 整数の部分 −> 0 │
小数点以下を再計算する │
0.2 × 2 = 0.4 整数の部分 −> 0 │
小数点以下を再計算する │
0.4 × 2 = 0.8 整数の部分 −> 0 │
小数点以下を再計算する │
0.8 × 2 = 1.6 整数の部分 −> 1 │
小数点以下を再計算する │
0.6 × 2 = 1.2 整数の部分 −> 1 │
小数点以下を再計算する │
0.2 × 2 = 0.4 整数の部分 −> 0 │
小数点以下を再計算する │
0.4 × 2 = 0.8 整数の部分 −> 0 │
小数点以下を再計算する │
0.8 × 2 = 1.6 整数の部分 −> 1 ↓
小数点以下を再計算する
: :
: :
: :
以下、これの繰り返しとなる。2進数で表すと
0.00011001・・・ となり
いつまでたっても終わらない。このような小数を無限小数という。
 ̄ ̄ ̄ ̄
10進数0.125を2進数で表した場合は0.001となった。
これは有限小数という
 ̄ ̄ ̄ ̄
【N進数の桁数】
ある数値XをN進数で表す場合の桁数は、Nを底とする対数
LogN(X)+1 となる。
例)
10進数1000の場合
Log10(1000)+1
= 3 + 1 = 4桁となる
 ̄ ̄ ̄ ̄ ̄
例)
10進数16を2進数で表す場合の桁数
Log2(16)+1
Log2(2^4)+1
= 4 + 1 = 5桁となる