情報:IT
高校生

サの問題が何言ってるのかさっぱりわかりません

る ctr に入れるのに最も適当なものを, 後 ケ は同じもの . コ 問4 次の文章を読み, 空欄 ゲ の解答群のうちから一つずつ選べ。 ただし, 空欄 ~ を繰り返し選んでもよい。 10進法の小数は,コンピュータにおいて有限桁の2進法の小数に変換して扱 われる。 具体的には, 10進法の小数を2進法の小数に変換するとき,ある位ま での小数で表すために,次の位以降を削除する丸め処理が行われる。丸め処理に よって得られた数と元の数との差の絶対値を丸め誤差と呼ぶ。 桁数を制限することで ここでは,以下の丸め処理を行うものとする。 起こる誤差 処理 ・ある位の次の位が0の場合、 次の位を切り捨てる ・ある位の次の位が1の場合、次の位を切り上げる 丸め誤差の実例を見てみよう。 1.6875=1+0.5 + 0.125 + 0.0625 2th i ⑥進法 =1x2°+1x21+0x22+1x23+1x27 より, 10 進法の 1.6875 は 2進法の 1,1011 である。 条件より 1.1 → 1.5 10進法の1.6875を小数第1位までの2進法の小数に変換することにより生じ る丸め誤差の絶対値は, 10進法の ケ である。 10 進法の 1.6875 を小数第2位までの2進法の小数に変換することにより生 る丸め誤差の絶対値は, 10 進法の コ である。 比べたときに出てくる数 1.6875 0.1875 1→1.75 進法→10進法 4百 1.75-16875=0.065 2 34 い ↓ 0.5 0.251.25625 <-10->
S IS * 10.5 +0.25 +0.0037+0.062m 1,7539 1.81 また、次の10進法の小数あ〜えを,それぞれ小数第1,2,3位までの2進法 の小数に変換するとき, 生じる丸め誤差の絶対値が変わらないものはサ ある。なお、()内は対応する2進法の小数である。 で 0.25 0-25 125 1,50390625 あ 1.5625 (1.1001) い 1.6875 (1.1011) う 1.8125 (1.1101) え 1.9375 (1.1111) H 0625 1,100円 1+05+ 0.00390625 0.0625 x0.0628 1+0.5 0.0625+0.00390tir 3125 12,50 3750 000390635 ケ コ の解答群 0.03125 ① 0.0625 ② 0.1875 0.25 0.3125 (5) 0.4375 0.6875 の解答群 あとい ① とう ②あえ いとう ④ うとえ 06876 2 1 1 1606875 1.3750 0.3750 2 1,7500 *0.7500 2 1.5000 0,5000 $ 1.0000 - 11 1
この変換により生じる丸め誤差の絶対値は10進法の 1.75-1.6875=0.0625 となる。 サ ②が正解 2進法で表記したあ〜えを, 丸め処理によりそれぞれ小数第1, 2,3位までの数値に変換し (それぞれai,a2, as とする),元の 数との差の絶対値を考える。 る。 (1.1001) からはa=1.1, a2=1.10, α = 1.101 が得られ |a-1.1001|=0.0001 |a2-1.1001|=0.0001 las-1.1001=0.0001 となるので,あは条件を満たす。 (1.1011)についてはケ,コから条件を満たさないことが わかる。 う (1.1101) からは α=10.0, a2=1.11, a=1.111 が得られ る。 |α-1.1101|=0.0011 |a2-1.1101|=0.0001 となるので,うは条件を満たさない。 え (1,1111) からはα=10.0, a2=10.00,α=10.000が得ら れる。 明らかに |a-1.1111|=|a2-1.1111|=|as-1.1111| となるので,えは条件を満たす。 第2問A デジタル化の仕組み 動画

回答

情報の世界では、無理数のように桁が永遠と終わらない値が存在します。
例えば、10進数の0.2は2進数で表すと桁が永遠に終わりません。

そのようなときは、区切りのよいところで四捨五入または切り捨てをします。
その結果、発生する誤差のことを丸め誤差といいます。

今回の「サ」に与えられた問題の内容は、
実際に与えられた10進数の値を2進数で表したときの値と、
括弧内の2進数の値との誤差(差分)がそれぞれ同じかどうか。
という問題なので、機械的に解いていくことになります。

つまりは現実の世界では、0と1だけで出来ているコンピュータの世界にも、
2進数で表せない数や誤差はあるんですよ。という話ですね。

暇人μ

補足させて頂きます。
この丸め処理というのは、例えば2進数の下4桁を小数点以下の為に使って行ったり等をする「固定小数点演算」において、少数点以下の値を切り捨てる処理を行うことで10進法で表現出来る状態に治すことを指します。

ここで今更前提が登場するのですが、コンピュータにとって1番自然な数値は正の整数です。
例えば16桁の2進数(0〜65535)で(2進数は基本的に4桁か8桁区切り)、うち8桁を少数点演算に使用すると、255.99609375になります(一番小さい0ではない値は0.00390625)。

参考までに、「固定小数点演算」で調べてみることをおすすめします(画像は16桁の符号なし2進数で、下8桁が全て1の時の計算(基本丸めるので意味なし))。

dio

お疲れ様です。
追記していただきありがとうございます。
固定小数点演算調べてみました。
だいたい、どのようなものか、
まだ理解していませんが、
添付して頂いた資料でこの問題の目的が分かりつつあります。

プロフィール拝見しました。
私は6年間C言語(組み込み系でない)やってきましたが、
サの意味が次第に分からなくなってしまい。追記頂けて幸いです。
まだ、理解できていないのですが、
追記頂けて有難う御座います!

暇人μ

>>dio
(固定小数点演算は組み込み以外で基本使わないので)この知識がある人はレアかと思われます。
その上、組み込み等のハードウェアを扱う分野は学習費用が高く付きがちなので、PC1つで学習出来るPCソフトウェア等の業界に人が流れがちですね。
私はたまたま専門(?)学校で組み込み系の技術を学んでいたのが楽しかった為、組み込みプログラマーになりました(英語が苦手すぎて致命傷ギリギリですが())。

この回答にコメントする
疑問は解決しましたか?

この質問を見ている人は
こちらの質問も見ています😉