午前問題についての質問です
広告
あさん
(No.1)
平成26年秋期午前問2なのですが、解説が理解できません。
4×1ビット … 9
とはどういうことなのでしょうか。
問題
4nビットを用いて整数を表現するとき,符号なし固定小数点表示法で表現できる最大値をaとし,BCD(2進化10進符号)で表現できる最大値をbとする。nが大きくなるとa/bはどれに近づくか。
解説
BCD(Binary-coded decimal,2進化10進数)は、2進数4桁を10進数1桁に対応させて整数を表現する方法です。
02.gif
例えば、10進数の"725"は、BCDだと"0111 0010 0101"と表現されます。
4nビットのnを1から順に増やしていくと、BCDで表現できる最大値(b)は、
4×1ビット … 9
4×2ビット … 99≒102
4×3ビット … 999≒103
4×4ビット … 9999≒104
4×nビット … 10n
というように、10n で近似することができます(桁数がnになるからです)。
一方、符号なし固定小数点表示法で表現できる最大値(a)は、
4×1ビット … 15
4×2ビット … 255≒28
4×3ビット … 4095≒212
4×4ビット … 65535≒216
4×nビット … 24n
というように 24n で近似することができます。
"a/b"には以下の関係があると言えます。
24n/10n
=16n/10n //24n=(2×2×2×2)n
=(16/10)n //指数法則を適用
したがって「エ」の式が適切です。
リンク
https://www.ap-siken.com/s/kakomon/26_aki/q2.html
4×1ビット … 9
とはどういうことなのでしょうか。
問題
4nビットを用いて整数を表現するとき,符号なし固定小数点表示法で表現できる最大値をaとし,BCD(2進化10進符号)で表現できる最大値をbとする。nが大きくなるとa/bはどれに近づくか。
解説
BCD(Binary-coded decimal,2進化10進数)は、2進数4桁を10進数1桁に対応させて整数を表現する方法です。
02.gif
例えば、10進数の"725"は、BCDだと"0111 0010 0101"と表現されます。
4nビットのnを1から順に増やしていくと、BCDで表現できる最大値(b)は、
4×1ビット … 9
4×2ビット … 99≒102
4×3ビット … 999≒103
4×4ビット … 9999≒104
4×nビット … 10n
というように、10n で近似することができます(桁数がnになるからです)。
一方、符号なし固定小数点表示法で表現できる最大値(a)は、
4×1ビット … 15
4×2ビット … 255≒28
4×3ビット … 4095≒212
4×4ビット … 65535≒216
4×nビット … 24n
というように 24n で近似することができます。
"a/b"には以下の関係があると言えます。
24n/10n
=16n/10n //24n=(2×2×2×2)n
=(16/10)n //指数法則を適用
したがって「エ」の式が適切です。
リンク
https://www.ap-siken.com/s/kakomon/26_aki/q2.html
2022.03.13 13:07
KiraOtosatさん
(No.2)
解説にもある通り、2進化10進数とは2進数4桁を10進数1桁に対応させて整数を表現する方法です。
よって、4ビットのかたまりを一つ用意することによって、はじめて10進数の一桁を表すことができるのです。
逆に言えば、4ビットのかたまり一つでは0から9までの数字を表現することができません。(単純な2進数は0から16までですが、2進化10進数というのは、2進数の数字を4ビットずつに区切って、それぞれの4ビットを10進数で表す1の位、10の位、100の位、という具合にそれぞれの桁として数字を見る方法です。ですから4ビットあったとしても0から9までしかそれぞれのかたまりでは表現できないのです。)
ですから、4*1ビット(1ケタ)であれば9まで、4*2ビット(2ケタ)であれば99までといった具合で10進数表記に直した場合はその数字まで表現できますという意味です。
よって、4ビットのかたまりを一つ用意することによって、はじめて10進数の一桁を表すことができるのです。
逆に言えば、4ビットのかたまり一つでは0から9までの数字を表現することができません。(単純な2進数は0から16までですが、2進化10進数というのは、2進数の数字を4ビットずつに区切って、それぞれの4ビットを10進数で表す1の位、10の位、100の位、という具合にそれぞれの桁として数字を見る方法です。ですから4ビットあったとしても0から9までしかそれぞれのかたまりでは表現できないのです。)
ですから、4*1ビット(1ケタ)であれば9まで、4*2ビット(2ケタ)であれば99までといった具合で10進数表記に直した場合はその数字まで表現できますという意味です。
2022.03.13 13:17
chihiroさん
★AP シルバーマイスター
(No.3)
要は10進数において0~9を4ビットで表現するということです。
例えば10進数の123であれば、0001 0010 0011 と書きます。
4nビットなら10進数でn桁まで書けるので、各桁がすべて9である999…9≒10^nがBCDで表現できる最大値すなわちbとなります。
例えば10進数の123であれば、0001 0010 0011 と書きます。
4nビットなら10進数でn桁まで書けるので、各桁がすべて9である999…9≒10^nがBCDで表現できる最大値すなわちbとなります。
2022.03.13 13:21
あさん
(No.4)
ありがとうございます
2022.03.13 13:49
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。