ここでは小数点を含む数値を2進数で表現する方法を学びましょう。
小数点以外はこちらの記事で解説してるので、不明な方はどうぞ。
ここではコンピュータでも利用される数値の表現方法を学習しましょう。数値の表現方法に2進数と16進数と呼ばれる仕組みがあります。これは2進数なら0と1のみ、16進数なら0から15の数値で数を表現する方法です。全く分かりません。難しく考えなくて大丈夫だよ。まずn進数という仕組みを理解しようね。n進数の概念身近に使ってる表現に10進数があります。これは1, 2, 3 . . .と数えて10になったら桁が上がる仕組みです。じゃあ、2進...
小数を含む2進数を10進数に変換する方法
そもそも小数とは何でしょうか。まずは10進数で考えてみましょう。
![](https://takemi.blog/wp-content/uploads/2023/09/00D90ECEDDFA45078397DE4A2A2F7549.webp)
0.25ってどんな数字? 桁の概念を使って考えてみよう。
![](https://takemi.blog/wp-content/uploads/2024/03/D46ED1C42500466BB89D4AD9CC80048F.webp)
(1 x 0) + (0.1 x 2) + (0.01 x 5)です。
![](https://takemi.blog/wp-content/uploads/2023/09/00D90ECEDDFA45078397DE4A2A2F7549.webp)
その通り。0以下の桁はマイナスの乗数を使うんだ。2進数も同じだよ。
![2進数から10進数に変換する方法](https://takemi.blog/wp-content/uploads/2023/09/5F65F4F5FFE442CFA99FE3BCDFD865DD_0001.webp)
小数を含む10進数を2進数に変換する方法
負数のべき乗を見て分かったと思いますが、とても暗算できるレベルじゃないです。
なので小数に対応した筆算っぽい方法を使って2進数に変換します。
また、その時に整数部分と小数部分は分離して考えることができます。
整数部分はすでに解説済みなので問題ないですよね。
小数部分は1になるまで2倍を繰り返し、桁上りするたびに整数部を0に戻します。
その時に桁上りした場合は1、桁上りしていない場合を0として、結果を繋ぐと小数部分の2進数になります。
![](https://takemi.blog/wp-content/uploads/2024/03/D46ED1C42500466BB89D4AD9CC80048F.webp)
難しいです。
![](https://takemi.blog/wp-content/uploads/2023/09/00D90ECEDDFA45078397DE4A2A2F7549.webp)
ちゃんと説明を用意してるよ。これを見てみよう。
![10進数から2進数に変換する方法](https://takemi.blog/wp-content/uploads/2023/09/5F65F4F5FFE442CFA99FE3BCDFD865DD_0002.webp)
コンピュータは小数点の表現が苦手
実は先程の例では2進数で表現可能な数値を使って説明しました。
そもそもコンピュータは小数点の扱いが非常に苦手で、場合によっては数値がズレます。
これは説明画像の中でも触れましたが、小数点以下が無限に続くことが原因です。
また、仮に無限に続かなくても、桁数が多すぎて表現可能な範囲を超えることがあります。
これに対する根本的な解決策はありません。理由はデジタルが、つまりはコンピュータが無限を表現できないからです。
つまりは誤差を想定するか、誤差が出ても結果に影響しないような処理で利用するべきということです。
![](https://takemi.blog/wp-content/uploads/2024/03/D46ED1C42500466BB89D4AD9CC80048F.webp)
コンピュータは何でも万能にできるわけじゃないんですね。
![](https://takemi.blog/wp-content/uploads/2023/09/00D90ECEDDFA45078397DE4A2A2F7549.webp)
人にもコンピュータにも得意不得意はあるんだよ。
POINTコンピュータで小数点を含む計算を行う場合、誤差を想定して利用しないといけない。
また、桁数が膨大な場合など、数値を打ち切ることで発生する誤差を丸め誤差と呼ぶ。
あとがき
![](https://takemi.blog/wp-content/uploads/2023/09/00D90ECEDDFA45078397DE4A2A2F7549.webp)
Windowのプログラマー電卓だと小数点が使えないからWebのツールを使うといいよ。
![](https://takemi.blog/wp-content/uploads/2024/03/D46ED1C42500466BB89D4AD9CC80048F.webp)
何で小数点に対応してないんですか?
![](https://takemi.blog/wp-content/uploads/2023/09/00D90ECEDDFA45078397DE4A2A2F7549.webp)
Microsoftに聞いてくれ。
◆ コンピュータサイエンスに関する学習コンテンツ
この記事は参考になりましたか?
コメント