進数変換メモ

ホームへ JP106からUS101キーボード対応図 JP106からUS101キーボード対応図へ

例題)16進数のAFB8を8進数に変換する。

   **流れ:16進数→10進数→2進数→8進数**

※参考:池Zメモ


操作1,まず16進数のAFB8を10進数に変換する。

16進数でのAFB8という表記は、10進表記で下の様に、10,15,11,8と表記できる。
この16進→10進表記は覚えておいた方が良い。
0〜9、A〜Fまでの15までなので、可能であろう。

※0〜9はそのまま。A=10、B=11、C=12、D=13、E=14、F=15、以上

(16進数)
 
(10進数での表記) 10 15 11

これらの数字を以下のように代入し計算する。
16進の4桁なので16^3,16^2,16^1,16^0を各々該当する数字をかけたものを合計する。
(これが5桁の16進であれば16^4…となる。)
なお、16の0乗は1である。全ての数字の0乗もしかり、である。

   ((10x16^3)+(15x16^2)+(11x16^1)+(8x16^0))
 =((10x4096)+(15x256)+(11x16)+(8x1))
 =(40960+3840+176+8)=44984

よって

※ 16進数のAFB8は10進数で44984となる。

操作2、10進数の44984を2進数に変換する。

 以下の要領で、10進数の44984を答えが1になるまで2で割る(2進数であるから。)
例えば5623÷2=2811余り1という風に。
(ここで、いきなり8進数に変換するのであれば、5623÷8=702余り7という感じでも可能である。暗算しにくいが、、)
 

   2 ) 44984   …0    (※余り0)
    2 ) 22492   …0          
    2 ) 11246   …0               
    2 )  5623   …1   (※余り1) 
**********中略*******
    2 )     2    …0          
            1               

 下から上に1010の数字を並べて行くと、2進数での変換値が得られる。
よって

※10進数の44984は2進数では1010111110111000である。

 操作3,まず2進数の1010111110111000を8進数に変換する。

2進数の1010111110111000という意味不明な数字を最下桁から区切る。
今回は8進数に変換するので、2の3乗=8であるから、3桁づつ区切る。
(ここで仮に、16進数に変換するのであれば、2の4乗=16だから、4桁という風になる。)
その後、2進数の各桁の数字が1であれば、その桁に該当する数値を3桁区切りに合計していく。
8進数でのその桁に該当する数値(421、421..)は2^2=4 , 2^1=2 ,2^0=1という意味合いがある。
(ここで仮に、16進数に変換するのであれば、その桁に該当する数値は「8421、8421…」と4桁づつとなる)
この方法はUNIXのchmodコマンドでのパーミッション指定数値と同様である。
3桁ごとの合計数を並べていくと8進数の数値が得られる。
 

無し 無し 無し 無し 無し 無し
           

よって

※ 2進数の1010111110111000は8進数で127670となる。

ちなみにここで、16進数に変換してみると。

無し 無し 無し 無し 無し 無し
           
10 15 11

となり、16進数において10はAで, 15はFとなり11はB、8は8であるので、結果、AFB8と元に戻る。
メモ:2進数を10進にするには、2進数→16進数→10進数としてみたらどうか。操作3の※→操作1