マナビング基本情報技術者

2の補数表現の下位2ビットで余りはどう決まる?

基本情報技術者試験 平成30年度春期 午前 問1 / 基礎理論 › 離散数学

過去問にチャレンジ

平成30年度春期 午前 問1

ある整数値を,負数を2の補数で表現する2進表記法で表すと最下位2ビットは"11"であった。10進表記法の下で,その整数値を4で割ったときの余りに関する記述として,適切なものはどれか。ここで,除算の商は,絶対値の小数点以下を切り捨てるものとする。

  1. ア

    その整数値が正ならば3

  2. イ

    その整数値が負ならば-3

  3. ウ

    その整数値が負ならば3

  4. エ

    その整数値の正負にかかわらず0

会話形式の解説

講師講師
まず、下位2ビットから4の倍数との差を見ます。負数では商の取り方も確かめましょう。
受験者受験者
「11」なら余りはいつでも3、と考えてよいのでしょうか。
講師講師
正数なら、4の倍数に3を足した形なので余りは3です。この記述が適切です。
受験者受験者
負数でも同じ3になると思いましたが、商の条件が効くのですね。
講師講師
はい。例えば−5も下位2ビットは「11」です。−5を4で割った商は、指定された切り捨て方では−1になります。
受験者受験者
すると、−5=4×(−1)+(−1)なので、余りは−1ですか。
講師講師
そのとおりです。負数の余りを3とする記述も、−3とする記述も当てはまりません。
受験者受験者
−3ではなく−1になるのは、商を−1として計算するからですね。
講師講師
はい。また、余りが0なら4で割り切れますが、下位2ビットが「11」の整数は4の倍数ではありません。
受験者受験者
正数の余りは3、負数の余りは−1で、どちらも0にはならないと整理できます。
講師講師
迷ったら負数の例で商を0に近い整数にし、「整数=4×商+余り」で確かめましょう。

まとめ

下位2ビットが「11」の正数は、4の倍数に3を足した形なので、4で割った余りは3です。負数では、指定された方法で商を0に近い整数にすると、余りは−1になります。下位2ビットが「11」なら4の倍数ではないため、余りは0にもなりません。

解答・解説

正解はアです

この問題のテーマ

2の補数表現の下位2ビットから、4で割った余りを判断する問題です。負数では、指定された商の取り方に注意します。

解き方の考え方

下位2ビットが「11」の整数は、正負を問わず4で割った値が整数から4分の3だけずれる形で表せます。正数なら余りは3です。負数では商の絶対値の小数部分を切り捨てるため、余りは−1になります。

選択肢ごとの解説

  1. ○ア  その整数値が正ならば3
    正数で下位2ビットが「11」なら、その値は4の倍数に3を足した形です。したがって、4で割った余りは3になります。
  2. ×イ  その整数値が負ならば-3
    負数の場合、指定された除算の余りは−1です。例えば−5÷4の商は−1なので、−5=4×(−1)+(−1)となり、−3にはなりません。
  3. ×ウ  その整数値が負ならば3
    負数を4で割るときは、商を0に近い整数へ切り捨てます。この条件で下位2ビットが「11」なら余りは−1であり、3ではありません。
  4. ×エ  その整数値の正負にかかわらず0
    余りが0になるのは4で割り切れる場合です。下位2ビットが「11」の整数は4の倍数ではないため、正負にかかわらず0にはなりません。

POINT

  • 下位2ビットが「11」なら、その整数は4の倍数ではありません。
  • 正数で下位2ビットが「11」のとき、4で割った余りは3です。
  • 商の小数部分を0方向に切り捨てると、負数で下位2ビットが「11」のときの余りは−1です。

※出典:平成30年度春期 基本情報技術者試験 午前 問1