10進数
0から9までの10種類の数字を使って、9の次が1つ桁上がりする
2進数
0と1の2種類の数字を使って、1の次が1つ桁上がりする
コンピュータ内部では2進数が使われているが、2進数は桁数が非常に長くなるため、人が考えるときは、2進数と簡単に変換できる、8進数や16進数がよく使われる。
8進数
0から7までの8種類の数字を使って、7の次が1つ桁上がりする
16進数
0から9までの数字とA,B,C,D,E,Fの英字をを使って、Fの次が1つ桁上がりする
10進数 2進数 8進数 16進数
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
基数
基本となる数
例えば、10進数123.45は、
1×102+2×101+3×100+4×10-1+5×10-2
100 10 1 1/10 1/100
と、表すことができる。
このように、各桁の重み付けに基本となる数を基数という。
10進数の基数は10
2進数の基数は2
8進数の基数は8
16進数の基数は16
N進数の各桁の重みは、小数点を基準に左へN0, N1, N2…と増えていき、小数点を基準に右へN-1, N-2…と減っていく。
【N進数の重み】
… N2 N1 N0 . N-1 N-2 …
【10進数の重み】
… 102 101 100 . 10-1 10-2 …
【2進数の重み】
… 22 21 20 . 2-1 2-2 …
基礎変換
ある数を別の進数で表し直すこと
例えば、2進数101.101を10進数で表すと、5.625になる。
N進数から10進数への基数変換
2進数の値を10進数で表すには、各桁に2進数の重みを掛けて足す。
[2進数] 1 0 1 . 1 0 1
× × × × × ×
[2進数の重み] 4 2 1 . 1/2 1/4 1/8
↓ ↓ ↓ ↓ ↓ ↓
[掛けて足す] 4+ 2+ 1+ . 0.5+ 0+ 0.125 = 5.625
一般的に、N進数の値を10進数で表すには、各桁にN進数の重みを掛けて足す。
10進数からN進数への基数変換
*重み対応表を使う方法
10進数5.625を2進数で表すと、101.101となる。
2進数の重み対応表を活用して、大きい重みから1を入れるべきかを考えていく。
まず、4<5.625なので重みは4は1、4+2=6>5.625なので、重み2は0…という要領。
[2進数] 1 0 1 . 1 0 1
× × × × × ×
[2進数の重み] 4 2 1 . 1/2 1/4 1/8
↓ ↓ ↓ ↓ ↓ ↓
[掛けて足す] 4+ 2+ 1+ . 0.5+ 0+ 0.125 = 5.625
一般的に、10進数からN進数で変換する場合は、N進数の重み対応表を活用する。
*割り算と掛け算を使う方法
10進数6.375を2進数で表すと、2進数110.011になる。
この場合。10進数6.375を整数部"6"と少数部"0.375"に分けて考える。
10進数の値の整数部を2進数で表すには、2で割って余りを下から並べる。
6 ÷ 2 = 3…0 ↑
←
3 ÷ 2 = 1…1 ↑
←
1 ÷ 2 = 0…1 ↑ 余りを下から並べて"110"となる
次のような計算方法もある
2) 6
2) 3 …0
2) 1 …1
0 …1 余りを下から並べて"110"となる
10進数の値の少数部を2進数で表すには、2で掛けて整数部を順に並べる。
0.375 × 2 = 0.75 ↓ 少数部のみ引き継いでいく
←
0.75 ÷ 2 = 1.5 ↓
←
0.5 ÷ 2 = 1.0 ↓ 整数部を上から並べて"011"となる
最後に、整数部と少数部を合わせると、"110.011"になる。
このように、10進数の値をN進数で表すには、整数部はNで割って余りを下から並べ、少数部はNを掛けて整数部の順に並べて求めることもできる。
2進数と8進数・16進数の関係
2進数を8進数、16進数の変換はもっと簡単に行える。
2進数の3桁は、8進数の1桁に対応している(23=8)。
2進数の値を8進数で表すには、小数点を基準に、3桁ずつ区切って、それぞれ8進数で表す。
3桁にならない場合は、0を補う。
2進数1100.01を8進数で表すと、14.2になる。
[2進数] 1 1 0 0 . 0 1
0を補う
[3桁ずつ区切る] 0 0 1 1 0 0 . 0 1 0
× × × × × × × × ×
[2進数の重み] 4 2 1 4 2 1 . 4 2 1
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
[掛けて足す] 0+ 0+ 1+ 4+ 0+ 0+ . 0+ 2+ 0
↓ ↓ ↓
[8進数] 1 4 . 2
同じイメージで16進数も変換できる。
2進数の4桁は、16進数の1桁に対応している(24=16)。
2進数の値を16進数で表すには、小数点を基準に、4桁ずつ区切って、それぞれ16進数で表す。
4桁にならない場合は、0を補う。
2進数1100.01を16進数で表すと、C.4になる。
[2進数] 1 1 0 0 . 0 1
0を補う
[4桁ずつ区切る] 1 1 0 0 . 0 1 0 0
× × × × × × × ×
[2進数の重み] 8 4 2 1 . 8 4 2 1
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
[掛けて足す] 8+ 4+ 0+ 0+ . 0+ 4+ 0+ 0
↓ ↓
[掛けて足す] C . 4
16進数なので、12ではなくCになることに注意。
8進数から2進数に変換するときは8進数1桁を2進数3桁に、
16進数から2進数に変換するときは16進数を1桁を2進数4桁に、
2進数の重み対応表を活用して今の逆を考える。
0から9までの10種類の数字を使って、9の次が1つ桁上がりする
2進数
0と1の2種類の数字を使って、1の次が1つ桁上がりする
コンピュータ内部では2進数が使われているが、2進数は桁数が非常に長くなるため、人が考えるときは、2進数と簡単に変換できる、8進数や16進数がよく使われる。
8進数
0から7までの8種類の数字を使って、7の次が1つ桁上がりする
16進数
0から9までの数字とA,B,C,D,E,Fの英字をを使って、Fの次が1つ桁上がりする
10進数 2進数 8進数 16進数
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
基数
基本となる数
例えば、10進数123.45は、
1×102+2×101+3×100+4×10-1+5×10-2
100 10 1 1/10 1/100
と、表すことができる。
このように、各桁の重み付けに基本となる数を基数という。
10進数の基数は10
2進数の基数は2
8進数の基数は8
16進数の基数は16
N進数の各桁の重みは、小数点を基準に左へN0, N1, N2…と増えていき、小数点を基準に右へN-1, N-2…と減っていく。
【N進数の重み】
… N2 N1 N0 . N-1 N-2 …
【10進数の重み】
… 102 101 100 . 10-1 10-2 …
【2進数の重み】
… 22 21 20 . 2-1 2-2 …
基礎変換
ある数を別の進数で表し直すこと
例えば、2進数101.101を10進数で表すと、5.625になる。
N進数から10進数への基数変換
2進数の値を10進数で表すには、各桁に2進数の重みを掛けて足す。
[2進数] 1 0 1 . 1 0 1
× × × × × ×
[2進数の重み] 4 2 1 . 1/2 1/4 1/8
↓ ↓ ↓ ↓ ↓ ↓
[掛けて足す] 4+ 2+ 1+ . 0.5+ 0+ 0.125 = 5.625
一般的に、N進数の値を10進数で表すには、各桁にN進数の重みを掛けて足す。
10進数からN進数への基数変換
*重み対応表を使う方法
10進数5.625を2進数で表すと、101.101となる。
2進数の重み対応表を活用して、大きい重みから1を入れるべきかを考えていく。
まず、4<5.625なので重みは4は1、4+2=6>5.625なので、重み2は0…という要領。
[2進数] 1 0 1 . 1 0 1
× × × × × ×
[2進数の重み] 4 2 1 . 1/2 1/4 1/8
↓ ↓ ↓ ↓ ↓ ↓
[掛けて足す] 4+ 2+ 1+ . 0.5+ 0+ 0.125 = 5.625
一般的に、10進数からN進数で変換する場合は、N進数の重み対応表を活用する。
*割り算と掛け算を使う方法
10進数6.375を2進数で表すと、2進数110.011になる。
この場合。10進数6.375を整数部"6"と少数部"0.375"に分けて考える。
10進数の値の整数部を2進数で表すには、2で割って余りを下から並べる。
6 ÷ 2 = 3…0 ↑
←
3 ÷ 2 = 1…1 ↑
←
1 ÷ 2 = 0…1 ↑ 余りを下から並べて"110"となる
次のような計算方法もある
2) 6
2) 3 …0
2) 1 …1
0 …1 余りを下から並べて"110"となる
10進数の値の少数部を2進数で表すには、2で掛けて整数部を順に並べる。
0.375 × 2 = 0.75 ↓ 少数部のみ引き継いでいく
←
0.75 ÷ 2 = 1.5 ↓
←
0.5 ÷ 2 = 1.0 ↓ 整数部を上から並べて"011"となる
最後に、整数部と少数部を合わせると、"110.011"になる。
このように、10進数の値をN進数で表すには、整数部はNで割って余りを下から並べ、少数部はNを掛けて整数部の順に並べて求めることもできる。
2進数と8進数・16進数の関係
2進数を8進数、16進数の変換はもっと簡単に行える。
2進数の3桁は、8進数の1桁に対応している(23=8)。
2進数の値を8進数で表すには、小数点を基準に、3桁ずつ区切って、それぞれ8進数で表す。
3桁にならない場合は、0を補う。
2進数1100.01を8進数で表すと、14.2になる。
[2進数] 1 1 0 0 . 0 1
0を補う
[3桁ずつ区切る] 0 0 1 1 0 0 . 0 1 0
× × × × × × × × ×
[2進数の重み] 4 2 1 4 2 1 . 4 2 1
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
[掛けて足す] 0+ 0+ 1+ 4+ 0+ 0+ . 0+ 2+ 0
↓ ↓ ↓
[8進数] 1 4 . 2
同じイメージで16進数も変換できる。
2進数の4桁は、16進数の1桁に対応している(24=16)。
2進数の値を16進数で表すには、小数点を基準に、4桁ずつ区切って、それぞれ16進数で表す。
4桁にならない場合は、0を補う。
2進数1100.01を16進数で表すと、C.4になる。
[2進数] 1 1 0 0 . 0 1
0を補う
[4桁ずつ区切る] 1 1 0 0 . 0 1 0 0
× × × × × × × ×
[2進数の重み] 8 4 2 1 . 8 4 2 1
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
[掛けて足す] 8+ 4+ 0+ 0+ . 0+ 4+ 0+ 0
↓ ↓
[掛けて足す] C . 4
16進数なので、12ではなくCになることに注意。
8進数から2進数に変換するときは8進数1桁を2進数3桁に、
16進数から2進数に変換するときは16進数を1桁を2進数4桁に、
2進数の重み対応表を活用して今の逆を考える。