- ベストアンサー
0.1
計算機では10進数の0.1を2進数は無限小数になってしまうのに、 どうやって10進数0.1を現しているのでしょうか? 基本情報の時に0.1が無限小数になるってよく問題ででてくるのですが、、、 謎です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
現在の計算機でも行っているものがあるかどうかは不明ですが、数十年前の棒電卓で有名なC社(今は、パソコンからは撤退しているようですが)が発売していたパソコンでは10進数→2進数変換時の丸め誤差を無くするために、10進数のまま記憶することが出来たと記憶しています。(詳細はよく覚えていませんが、4Bit毎に区切って10進数の1桁づつ記憶していたのでは...) この場合、0.1をどんどん足していっても誤差の累積により真値から外れることは無いという利点はありましたが、2進数に変換するより、メモリの使用効率等で不利だったようです。
その他の回答 (3)
- ymmasayan
- ベストアンサー率30% (2593/8599)
No.1のymmasayanです。勘違いで、固定小数点のほうを間違いました。 No.2、No.3のかたの言われるように、2進数4ビットで10進数1桁を覚える 方法(BCDまたはPACK形式)を使います。 技術計算では近似値、お金の計算ではPACK形式で正確にと言うことです。
お礼
ありがとうございます、 <PACK パック十進数ですね、、、
- gimmick
- ベストアンサー率49% (134/270)
#2の方も述べられていますが、計算機上で10進数を正確に表す場合には10進数1桁を4ビットで表します。例えば、10進数の34は、計算機上では00110100と表されます。このような表現方式を2進化10進数とかBCD(Binary Coded Decimal)と呼びます。金融システムなどでは一般的に使われているはずです。
お礼
ありがとうございます。BCDを使っているのですか、 これは覚えやすくって好きでした。基本情報での話です。
- ymmasayan
- ベストアンサー率30% (2593/8599)
2つの覚え方があります。 (1)無限小数の尻尾を切って近似値で覚える。・・・少し誤差が出るけど。 (2)2進数の小数点の位置を左へ動かして、そこに小数点がくるようにして桁を 合わせて覚える。 (1)は浮動小数点方式、(2)は固定小数点方式です。
お礼
ありがとうございます。なるほど、近似値をとるのですね、
お礼
ありがとうございます。