【数の構成】2進小数と10進小数の変換

2進法の2進数と10進数の相互変換の計算方法について、これまでみてきた整数に加え、小数もあわせて整理すると以下のようになります。

この節を最初から読む
この節の目次にもどる

2進小数と10進小数の変換

両方を比べると、「2進→10進」の変換では、小数点から遠い外側から、「10進→2進」では小数点の足元の内側から計算していくことになりますね。

2進小数と10進小数の変換


小数についてもさっそく同じように分析していきましょう。元の計算は以下のものでした。

2進小数と10進小数の変換

整数のときと同様に、共通する基数を括っていきます。整数のときは、大きな桁からでしたが、小数では、より深いところの、小さな桁の方が累乗の次数が高いので、そちらから順々に入れ子にしていきます。

2進小数と10進小数の変換

整数のときとは、入れ子の向きが逆なので、入れ子の深いところから計算するb)の矢印が「2進から10進に戻す」、外側からのa)の方の向きが「10進から2進を作る」フローになります。a)の向きでは、もともと各桁値に1/2を掛けて2進小数が構成されていますので、それを1/2で割り戻す(=2倍する)ことで、小数値が1を超えて1を引けるようであれば1を外し、なければ0を置いてそのまま次に進む、というのが式から読みとれるところです。

整数で検証した、ウォーターフォール状の変換図も作ってみましょう。赤字の部分を入れ替えることで他の例でも計算できます。また「1/2」を交換すれば別のn進法に切り替えできることも整数のときと同じです。

2進小数と10進小数の変換


上の小数の変換手順では、<2進→10進>で「1/2を掛ける」とあるのは「2で割る」、<10進→2進>で「1/2で割る」「2を掛ける」のといっしょです。従って<2→10>で整数では「2を掛ける」ときに少数は「2で割る」、<10→2>で整数が「2で割る」ときに小数では「2を掛ける」、というひっくり返しの関係になります。また、整数の<10進→2進>の計算では、(整数の)半端、余りが出たら、それを下の位からセットしていきますが、小数の側では、逆に2を掛けることで小数点の水面から上に整数があふれて浮き出てきたら、それをすくって上の位からはめこんでいく、という流れで、小数の計算ですから、小数点以下を常に1以下に保つための整数の「余り」、という考え方になります。

整数の際に作成した「2進数生成マシン」も、小数版を作ってみました。ストレートにMOD関数で余りを抽出して摘み取っていけばいいというものではないので、ひとひねり加えてあるところが特徴です。整数版といっしょに並べておきますので、関数式の違いを比べてみてください(小数を手軽に2進変換するツールは、オフライン/オンラインともあまりないようなので、ツールとしてもけっこう便利かもしれません)。


2進数生成マシン(小数ver.)

2進数生成マシン(整数ver.)



posted by oto-suu 11/07/02 | TrackBack(0) | 数の構成 | このブログの読者になる | 更新情報をチェックする
<< 前のページ | TOP | 次のページ >>

この記事へのトラックバック