普段使用している数値は10進数(10進法)です。1234567890…。
コンピュータの内部では10進数(10進法)ではなく、ほぼすべてで2進数(2進法)で動作しています。コンピュータは、2進数しか理解・計算できません。
当ページでは、10進数から2進数に変換する手順を記載しています。2進数から10進数への変換は「2進数→10進数」を参照ください。
(注意!)この計算は、2進数の小数を「.」(ドット)で表しています。浮動小数の場合は実際のデータは指数で保有されるため、下記の計算とは違うビット配列となるのでご注意ください。
変換元の10進数を以下とすると
10進数 | -12.3 |
---|
(1) 10進数を整数部と小数部に分ける
10進数を2進数に変換する場合、整数部と小数部で計算方法が異なります。このため整数部と小数部に分割します。
符号 | 整数部 | 小数部 | ||
---|---|---|---|---|
10進数 | - | 12 | . | 3 |
(2) 10進数の整数部を2進数に変換する
計算式 (整数部 or 商 ÷ 2) | 商 (次計算) | 余り (2進数) | 2進数の 配置順 |
---|---|---|---|
12 ÷ 2 = | 6 | 0 | |
6 ÷ 2 = | 3 | 0 | |
3 ÷ 2 = | 1 | 1 | |
1 ÷ 2 = | 0 | 1 | |
※余りを下から上(逆順)に配置する。 |
2進数(整数部) | 1100 |
---|
(3) 10進数の小数部を2進数に変換する
計算式 (小数部 or 商の小数 × 2) | 商 (次計算) | 整数部 (2進数) | 2進数の 配置順 |
---|---|---|---|
0.3 × 2 = | 0.6 | 0 | |
0.6 × 2 = | 1.2 | 1 | |
0.2 × 2 = | 0.4 | 0 | |
0.4 × 2 = | 0.8 | 0 | |
0.8 × 2 = | 1.6 | 1 | |
0.6 × 2 = | 1.2 | 1 | |
0.2 × 2 = | 0.4 | 0 | |
0.4 × 2 = | 0.8 | 0 | |
赤字部分の循環小数となる | … | … | |
※商の整数部を上から下(降順)に配置します |
2進数(小数部) | 01001100… |
---|
(4) 整数部と小数部を結合
上記の整数部と小数部を合わせる2進数となります
2進数 | 1100 | . | 01001100… |
---|
(5) 桁合わせ
通常2進数は、8bit,16bit,32bit,64bitなどで桁合わせが行われます。
必要なbitに合わせて桁合わせを行います。
今回は整数8bit、小数8bitの合計16bitで桁合わせを行います。
2進数 | 00001100.01001100 |
---|
(6) 2の補数
10進数の符号が”マイナス”のため、2の補数で2進数をマイナスに変換します。
変換元の10進数がプラスの場合は変換不要です。
2進数 (2の補数前) | 00001100.01001100 |
---|
2進数 (2の補数後) | 11110011.10110100 |
---|
cman.jp内 関連ページ |
---|
2,8,10,16進数 計算・変換(マイナス、小数点対応) |
2の補数とは? |
2進数,8進数,16進数とは? |