ステップアップ! 小数の基数変換

スライドの学習の目的

小数の基数変換の方法を知る

  • 1. 2進数小数を10進数小数に変換する

  • 2. 10進数小数を2進数小数に変換する

このスライドは、ステップアップ編です。小数の基数変換を学習します。

小数のは変換は難しそう・・・

丁寧に読んでいけばきっと大丈夫。頑張ってね。

1. 2進数小数を10進数に変換する

2進数小数を10進数に変換する場合は、2の桁の重みを掛けて変換します。

これまでと同じように桁の重みを掛けて計算を行いますが、桁の重みに注意をする必要があります。

ある2進数 (0.XXX・・・)2の桁の重みは次のようになります。

2小数の桁の重み

1桁目の重みは「20」でした。そこから小数点以下、第1位、第2位と桁の重みは2-1、2-2…と負の指数になります。

小数は-1乗、-2乗っていうように1つずつ減っていくのですね。

そうです。1桁目を0乗として、右の桁に進むと-1ずつ指数は変化します。

参 考

負のべき乗の計算は分数の計算になります。

例えば、2進数 (0.101)2 を10進数に変換する場合は、次のように行います。

・練習問題

・2進数(0.011)2 を10進数に変換してください。

解答・解説

計算は次のようになります。

解答:(0.375)10

16進数小数を10進数に変換する場合も、16-1、16-2といった重みを掛けて計算を行います。

また、小数部分も4桁ずつ区切り2進数に変換してから計算することもできます。

2. 10進数小数を2進数に変換する

10進数小数を2進数へ変換する場合は、これまでとは違った計算を行います。

10進数の小数部分に基数である2を小数部分が0になるまで掛けることで計算します。

(0.75)10を例に2進数に変換してみましょう。

  • 手順1

    計算の準備として小数点の位置を境に、直線を引きます。

  • 手順2

    変換する基数の2を掛けます。

  • 手順3

    小数の部分(線の右側)が0になるまで掛け算を繰り返します。

    注意をするところは、整数部分(線の左側)に掛け算を行わないというところです。

  • 手順4

    計算が終わったら、線の左側を抜き取り変換した数値を取り出します。

    (0.75)10を2進数に変換すると(0.11)2となります。

・練習問題

・10進数(0.375)10を2進数に変換してください。

解答・解説

計算は次のようになります。

解答:(0.011)2

循環小数

10進数小数を2進数に変換すると循環小数になる場合があります。

循環小数とは0.100110011001・・・のように、同じ値が無限に繰り返される小数のことです。

10進数小数を2進数に変換すると循環小数になることとがあります。

例えば、10進数の(0.1)10は循環小数なのですが、2進数に変換すると次のようになります。

(0.1)10を2進数に変換すると(0.00011001100110011・・・)2となり、同じ結果を繰り返す循環小数になります。

コンピュータは0.1などの数値は正しく表すことができませんが、単純な計算の場合は、正しく計算が出来るように工夫されています。

次の2つのプログラムをGoogle Colabで実行してみましょう。

次の2つのプログラムの一方は正しく計算され、もう一方は正しく計算されません。

実行して確かめてみましょう。

プログラム1: 正しく実行できる例

print(0.1+0.1) 

実行結果は次のようになります。

プログラム2: 正しく実行できない例

print(0.1+0.1+0.1) 
注 意

使用するプログラミング言語、OS、コンピュータの種類などの環境の違いで、正しく計算されるか、正しく計算できないか、の結果は変わります。

プログラム2は、10進数小数が正しくコンピュータ内部で表現できていないために発生します。

基数変換のまとめに進みましょう。

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる