r進数と基数変換

パソコンの数値表現は、2進数で行われる。2進数は2が基数1)2倍すると桁が一つ上がる。同じように10進数であれば、10倍すると桁が一つ上がる。

[say]1+1はもちろん、10ですよね。[/say]

数値表現

10進数 2進数
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010

2桁目は2倍になるので重みは21。2進数の1桁目は1倍なので、重みは20。16進数の場合、16倍で桁が上がることになる。数字が足りないのでアルファベットを使う。(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10…)

n桁目は2n-1で表せることが分かる。

(2A.4C)16を2進数の和で表すと?

2 A . 4 C
0010 1010 . 0100 1100
〇〇25 23〇21 〇2-2〇〇 2-52-6〇〇

16進数の各桁を2進数に直して、桁が重いところだけ抜き出す(1が立ってるところに2の重みがあるということ)と、答えはこうなる。

(2A.4C)16=25+23+21+2-2+2-5+2-6

2進数からr進数に基数変換する

2進数から10進数にするには、各桁に重み分の基数をかけて全部加算すればOK。

(111011)2だったら(73)8だから10進数に直すと7×81+3×80=56

r進数から2進数に基数変換する

含まれる重みを抜いていく。もしくは2で割れるところまで割っていく。

(230.375)10を2進数に基数変換する

整数部分230について、230がなくなるまで大きい方から基数の重みを充当してみる。含められた桁に、1が入る。

128 64 32 16 8 4 2 1
1 1 1 0 0 1 1 0

小数部分0.375についても同様。

0.5 0.25 0.125
0 1 1

(230.375)10 を2進数に直すと(11100110.011)2

脚注   [ + ]

1. 2倍すると桁が一つ上がる。同じように10進数であれば、10倍すると桁が一つ上がる。