関数binaryToIntegerは、1桁以上の符号なしの2進数を文字列で表した値を引数binaryStrで受け取り、その値を整数に変k何した結果を戻り値とする。
例えば、引数として“100”と受け取るを、4を返す。
プログラム中のa、bに入れる軸の適切な組み合わせはどれか。
[プログラム]
〇整数型:binaryToInteger(文字列型:binaryStr)
整数型:integerNum, digitNum, exponent, i
integerNum ← 0
for (iを1からbinaryStrの文字数まで1ずつ増やす)
digitNum ← binaryStrの末尾からi番目の文字を整数型に変換した値
// 例:文字“1”であれば整数値1に変換
exponent ← a
integerNum ← b
endfor
return integerNum
|
a |
b |
ア |
(2のi乗) ー 1 |
integerNum×digitNum×exponent |
イ |
(2のi乗) ー 1 |
integerNum + digitNum×exponent |
ウ |
2の(i - 1)乗 |
integerNum×digitNum×exponent |
エ |
2の(i - 1)乗 |
integerNum + digitNum×exponent |
答え エ
【解説】
binaryStrの末尾1番目の値は1の位なのでaに入るのは2の(i - 1)乗になり、末尾からi番目の値はdigitNum×exponentになる。
したがってbに入るのは(i - 1)番目までの値に1番目の値を加えるのでintegerNum + digitNum×exponentになる。
[プログラム]
〇整数型:binaryToInteger(文字列型:binaryStr)
整数型:integerNum, digitNum, exponent, i
integerNum ← 0
for (iを1からbinaryStrの文字数まで1ずつ増やす)
digitNum ← binaryStrの末尾からi番目の文字を整数型に変換した値
// 例:文字“1”であれば整数値1に変換
exponent ← 2の(i - 1)乗
integerNum ← integerNum + digitNum×exponent
endfor
return integerNum
|
a |
b |
エ |
2の(i - 1)乗 |
integerNum + digitNum×exponent |
【キーワード】
・2進数
【キーワードの解説】
- 2進数
数値の表現方式で、出現する数字は0と1であり、10進数の0、1、2、3、4は2進数で0、1、10、11、100と表現できる。
2進数のメリットは、OnとOffで表現できるため、コンピュータの中で使用しやすい。
ただ、けた数が多くなっていまうため(10進1024が10けたになる)、人が考えるときには2進数4けたをまとめて16進数(0〜9、A〜F)で扱うことが多い。
もっと、「2進数」について調べてみよう。
戻る
一覧へ
次へ
|