目的
- 基数変換が非常に苦手なためメモ的に記事にする
10進数から2進数に変換する。
- 大前提
- 小数点の前後(整数部分と小数部分)で区切って考える。
- 整数部分
- 「2で割る→答えを更に2で割る」を繰り返す。答えが1になるまで繰り返す。
- 割った順にあまりを並べる。
- 小数部分
- 「2を掛ける→答えの小数部分に更に2を掛ける」を繰り返す。2に掛ける数が0になるまで繰り返す。
- 2を掛けた答えの整数部分を計算とは逆順で並べる。
10進数から2進数に変換する例(10進数の値「10.375」を2進数に変換)
-
整数部分は10である。まずは10を2進数で表すことを考える。下記のように計算をすすめる。
10 ÷ 2 = 5 あまり 0 5 ÷ 2 = 2 あまり 1 2 ÷ 2 = 1 あまり 0
-
上記のようになる。最終の割り算の答えを頭としてあまりを下から並べると「1010」となるため10進数の10は2進数で表すと1010となる事がわかった。
-
小数部分を小数点を用いて表記すると0.375である。次に0.375を2進数で表すことを考える。下記のように計算をすすめる。
2 × 0.375 = 0.75 2 × 0.75 = 1.5 2 × 0.5 = 1.0
-
上記のようになる。最初の計算の答えの整数部分を頭として上から整数部分だけを並べると「011」となるため10進数の0.375は2進数で表すと0.011となる事がわかった。
-
以上により整数部分と小数部分が揃ったので小数点を用いて整数部分と小数部分を一緒に表記すると「1010.011」となり、10進数の10.375は2進数で表すと1010.011ということになる。
2進数から10進数に変換する。
- 大前提
- 小数点の前後(整数部分と小数部分)で区切って考える。
- 整数部分
- 2進数の各桁に2のn乗(n=桁の重み)を掛けてゆき、全ての値を足す。
- 少数部分
- 2進数の各桁に桁の重み分の1を掛けてゆき全ての値を足す。
2進数から10進数に変換する例(2進数の値「1110.1011」を10進数に変換)
-
整数部分は1110である。まず1110を10進数で表すことを考える。下記のように計算する。(掛けられる数 × 掛ける数としたとき、掛けられる数は2進数の値であり、下記の計算は1110の最小桁から計算を行っている。)
0 × 2の0乗 + 1 × 2の1乗 + 1 × 2の2乗 + 1 × 2の3乗 = 14
-
上記のようになる。計算結果から2進数の1110は10進数で表すと14になることが分かった。
-
小数部分は小数点を用いて表記すると0.1011である。次に0.1011を10進数で表すことを考える。下記のように計算をすすめる。
1 × 1/2の1乗 + 0 × 1/2の2乗 + 1 × 1/2の3乗 + 1 × 1/2の4乗 = 0.6875
-
上記のようになる。計算結果から2進数の0.1011は10進数で表すと0.6875になることが分かった。
-
以上により整数部分と少数部分が揃ったので小数点を用いて整数部分と小数部分を一緒に表記すると「14.6875」となり、2進数の1110.1011は10進数で表すと14.6875ということになる。