3.3. 2進法と10進法の変換について(整数)
10進法から2進法への変換、2進法から10進法への変換について説明します。
関数電卓を使用すると簡単に変換できますので、特にこの内容を覚える必要はありません。
(興味の範囲です)
(1)10進法に於ける桁上がりについて
無意識に使っている10進法ですが、そもそも○○進法とは、数が○○になると桁上がりする事で
数を表す方法です。
例)
@10進法:1,2,3・・・8,9,10、11,12・・・18,19、20、21・・・
(9を超え10になろうとする時に桁上がりをする)
A8進法:1,2,3,4,5,6,7,10、11,12,・・・16,17,20、21・・・
(7を超え8になろうとする時に桁上がりをする。)
B16進法:1,2,3,・・・9,A(10),B(11),C(12),D(13),E(14),F(15),10、11,12・・・1E(30)、1F(31)、20
16(F)になろうとするときに桁上がりをする。(3.1.2進法についてを参照下さい)
対応表
10進法 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 以下略 |
8進法 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 | 21 | 22 | 23 | 24 | 以下略 |
16進法 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 | 11 | 12 | 13 | 14 | 以下略 |
上の表で分かる様に、10進での”18”という数は8進では”22”であり、16進では”12”となります。
(2)進法の桁上がりについて
2進法とは、”2”になろうとする時に桁上がりをする事で数を表す方法です。
対応表(3.1.2進法についてを参照下さい)
10進法 | 1 | 2 | 3 | 4 | 以下略 |
2進法 | 0001 | 0010 | 0011 | 0100 | 以下略 |
2になろうとする時に桁上がりをします。従って2以上の数は登場せず、”1”と”0”の羅列
となってしまいます。
(3)10進法の桁について
変換の説明の前に10進法の桁について説明します。
3桁の場合の各位の数は、
1の位:100
10の位:101
100の位:102
nの位:10n
となります。
例) ”123”=1×102+2×101+3×100
(4)各桁の分解
数”123”を10で順次わっていくと、下記の様に各桁の数となります。
123÷10=12(商)、余り”3”・・・余りの”3”が1桁目の数、
12 ÷10= 1(商)、余り”2”・・・余りの”2”が2桁目の数
1 ÷10= 0(商)、余り”1”・・・余りが”1”が3桁目の数
となります。(わる数がなくなるまで続けます)
(5)10進法から2進法への変換について。
上記10進法で行った各桁の数の出し方を2進法に当てはめます。
”2進法”なので、10ではなく、”2”で割っていく。
例)
123÷2=61(商)、余り”1”・・・1桁目
61÷2=30(商)、余り”1”・・・2桁目
30÷2=15(商)、余り”0”・・・3桁目
15÷2= 7(商)、余り”1”・・・4桁目
7÷2= 3(商)、余り”1”・・・5桁目
3÷2= 1(商)、余り”1”・・・6桁目
1÷2= 0(商)、余り”1”・・・7桁目
(わる数がないので終了・・・それ以上の桁は全て”0”)
上記を桁の順に並べると、
”1111011”となり、答えが得られます。(検証は関数電卓で行ってみてください)
(6)2進法から10進法への変換について
2進法で表記されている数の”1”となっている各桁の2n”を足します。
数値 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
2n | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
例1) | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
例2) | 1 | 1 | 1 | 0 | 0 | 0 |
例)1,例2)の表で”1”となっている箇所の”2n”の値を足していきます。
例1) 26+25+24+23+21+20=64+32+16+8+2+1=”123”
例2) 25+24+23=32+16+8=56
これで2進から10進に変換できました。(検証は関数電卓で行ってみてください)