2進数と10進数と16進数を相互変換する方法

2進数・10進数・16進数の相互変換についてまとめる。専門学生時代に習った知識だが、業務では全く使わないので忘れかけていた。
 

2進数から10進数への変換

 

2進数と10進数の対応表
10進数 2進数
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
…… ……

 
上記の表の「2進数の桁が繰り上がるとき」に注目する。以下がそれを抜き出した表である。
 

2進数と10進数の対応表
10進数 2進数
1 00000001
2 00000010
4 00000100
8 00001000
16 00010000
32 00100000
64 01000000
128 10000000

 
上記の対応表を見ると、2進数の桁があがる時の10進数の値が分かる。
 
従って、2進数で「1」となっている桁に対応する10進数の値を合計することにより、2進数から10進数の値を求めることができる。
 
例えば、2進数の「10101010」を10進数に変換する場合、値が128、32、8、2のところでビットが1なので、2進数の「10101010」は10進数では「170」だと分かる。
 
10進数と2進数の対応表
 

10進数から2進数への変換

10進数の数値を「 0 」になるまで「 2 」で割り算していき、その結果の「余りの数」を並べることにより、10進数の値を2進数の値へ変換することができる。
 
例えば、10進数の「28」を2進数に変換すると、以下のようになる。
 

  • 28 / 2 = 14, 余り0
  • 14 / 2 = 7, 余り0
  • 7 / 2 = 3, 余り1
  • 3 / 2 = 1, 余り1
  • 1 / 2 = 0, 余り1

 
足りないビット分は上位のビットから「0」で埋めるので、「00011100」となる。
 

2進数から16進数への変換

2進数の数値を16進数の数値に変換するためには、以下の3つのステップを踏む必要がある。
 

  1. 2進数(8ビット)を4桁(4ビット)ずつに分解する
  2. 分解した数から10進数に変換する
  3. 10進数の値を16進数に変換し、結合する

 
以下では、例として、2進数「00101010」を16進数に変換する場合を考えてみる。
 

2進数を4桁ずつに分解する

2進数「00101010」を「0010」と「1010」に分解する。
 

分解した数から10進数の値を求める

2進数「0010」は10進数「2」となり、2進数「1010」は10進数「10」となる。
 

10進数の値を16進数に変換し、結合する

10進数「2」は16進数「2」となり、10進数「10」は16進数「A」となる。
 
よって、2進数「00101010」は16進数「2A」となる。
 

16進数から2進数への変換

16進数の数値を2進数の数値に変換するためには、2進数から16進数に変換した時と逆のことをする。
これには以下の3つのステップを踏む必要がある。
 

  1. 16進数を1桁ずつに分解する
  2. 分解した値から10進数に変換する
  3. 10進数の値を2進数に変換し、結合する

 
以下では、例として、16進数「2A」を2進数に変換する場合を考えてみる。
 

16進数を1桁ずつに分解する

16進数「2A」を「2」と「A」に分解する。
 

分解した値から10進数に変換する

16進数「2」は10進数「2」となり、16進数「A」は10進数「10」となる。
 

10進数の値を2進数に変換し、結合する

10進数「2」は2進数「0010」となり、10進数「10」は2進数「1010」となる。
 
よって、16進数「2A」は2進数「00101010」となる。
 
 
以上
 
 
参考
ネットワークの勉強をはじめから – 2進数と10進数の変換方法

Article written by

2 Responses

  1. 匿名
    匿名 at | | Reply

    二進数00101010は10進数に変換すると
    結局どうなるんですか?

コメントを残す