情報の世界では、無理数のように桁が永遠と終わらない値が存在します。
例えば、10進数の0.2は2進数で表すと桁が永遠に終わりません。
そのようなときは、区切りのよいところで四捨五入または切り捨てをします。
その結果、発生する誤差のことを丸め誤差といいます。
今回の「サ」に与えられた問題の内容は、
実際に与えられた10進数の値を2進数で表したときの値と、
括弧内の2進数の値との誤差(差分)がそれぞれ同じかどうか。
という問題なので、機械的に解いていくことになります。
つまりは現実の世界では、0と1だけで出来ているコンピュータの世界にも、
2進数で表せない数や誤差はあるんですよ。という話ですね。
お疲れ様です。
追記していただきありがとうございます。
固定小数点演算調べてみました。
だいたい、どのようなものか、
まだ理解していませんが、
添付して頂いた資料でこの問題の目的が分かりつつあります。
プロフィール拝見しました。
私は6年間C言語(組み込み系でない)やってきましたが、
サの意味が次第に分からなくなってしまい。追記頂けて幸いです。
まだ、理解できていないのですが、
追記頂けて有難う御座います!
>>dio
(固定小数点演算は組み込み以外で基本使わないので)この知識がある人はレアかと思われます。
その上、組み込み等のハードウェアを扱う分野は学習費用が高く付きがちなので、PC1つで学習出来るPCソフトウェア等の業界に人が流れがちですね。
私はたまたま専門(?)学校で組み込み系の技術を学んでいたのが楽しかった為、組み込みプログラマーになりました(英語が苦手すぎて致命傷ギリギリですが())。
補足させて頂きます。
この丸め処理というのは、例えば2進数の下4桁を小数点以下の為に使って行ったり等をする「固定小数点演算」において、少数点以下の値を切り捨てる処理を行うことで10進法で表現出来る状態に治すことを指します。
ここで今更前提が登場するのですが、コンピュータにとって1番自然な数値は正の整数です。
例えば16桁の2進数(0〜65535)で(2進数は基本的に4桁か8桁区切り)、うち8桁を少数点演算に使用すると、255.99609375になります(一番小さい0ではない値は0.00390625)。
参考までに、「固定小数点演算」で調べてみることをおすすめします(画像は16桁の符号なし2進数で、下8桁が全て1の時の計算(基本丸めるので意味なし))。