LoginSignup
1
0

本日は 「割り算の答え」 が, 浮動小数点数で返る理由を書いてみます (o'(ェ)')_🐍

【 CPU の中身について】

 CPU という 「計算処理を行う部分」 において, その中身は, おおまかに ALU (整数を処理) と FPU (小数を処理) に, わかれています 🖥

【 ALU の特徴について】

 ALU は 「小数の計算」 が, できません。

 Python においては // (ダブル・スラッシュ) を使用しますと ALU により 「割り算」 が, 行われますが 「整数」 しか返せないので 「商と余り」 という 「かたち」 で計算し 「商」 のみが 「答え」 として, 返る仕組みに成っています。また 「余り」 を計算したいときは % (パーセント記号) を, 別途使用して計算します。このように 「単純な割り算」 に使用されます。

#ALU:商の求め方
quotient = 10 // 3
print(quotient)  # 計算結果 3

#ALU:余りの求め方
remainder = 10 % 3
print(remainder)  # 計算結果 1

【 FPU の特徴について】

 FPU は 「整数の計算」 が, できません。

  Python においては / (スラッシュ) を使用しますと FPU (または, 除算専用の装置) により 「割り算」 が, 行われますが 「小数」 しか返せないので 「小数」 で 「答え」 が, 返る仕組みに成っています。また FPU は 「複雑な割り算」 に使用されます。更なる高度な割り算の場合は, 別途, 除算専用の装置(除算器)が処理しています。

#FPU:商の求め方
result = 10 / 3
print(result)  # 計算結果 3.333...

【整数と小数(浮動小数点数)の計算について】

 「整数と小数の計算」 においては 「整数が小数に変換」 されてから FPU で, 計算されます。ですので, その 「答え」 も 「小数」 で, 返ります。

#整数と小数の計算
result = 1 + 1.0
print(result)  # 計算結果 2.0

【補足】

 以前は amazon のコメントにおいて 「お返事」 が, できたのですが, その 「お返事機能」 が, なくなってしまったため, よくある 「疑問/質問」 などについても Qiita 様々において, 書いていこうと思っております ✨

 また, この内容については, ぼくが書いている本で恐縮ですが, 4歩めのテキストの 「コラム - ALU と FPU について」 にて 「図入りでもう少し詳しく解説」 しております。もし, ご興味ありましたら, 何卒, よろしくお願いいたします (o'(ェ)')_🍵✨

* はじめてのプログラミング Python 入門者になるための4歩



1
0
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0