次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数revは8ビット型の引数byteを受け取り、ビットの並びを逆にした値を返す。例えば、関数revをrev(01001011)として呼び出すと、戻り値は11010010となる。 なお、演算子∧はビット単位の論理積、演算子∨はビット単位の論理和、演算子>>は論理右シフト、演算子<<は論理左シフトを表す。例えば、value >> nはvalueの値をnビットだけ右に論理シフトし、value << nはvalueの値をnビットだけ左に論理シフトする。 〔プログラム〕 ○8ビット型: rev(8ビット型: byte) 8ビット型: rbyte ← byte 8ビット型: r ← 00000000 整数型: i for (i を 1 から 8 まで 1 ずつ増やす) endfor return r

ビット反転は最下位を取り出し結果を左シフトして積む

頻出基本情報技術者試験2022年度 公開問題 科目B6/アルゴリズムとプログラミング / アルゴリズム

○8ビット型: rev(8ビット型: byte) 8ビット型: rbyte ← byte 8ビット型: r ← 00000000 整数型: i for (i を 1 から 8 まで 1 ずつ増やす) endfor return r

選択肢

正解と解説

正解: r ← (r << 1) ∨ (rbyte ∧ 00000001) rbyte ← rbyte >> 1

ビット順を反転させる定石は、元の値から最下位ビットを1つずつ取り出し、結果側では左へ押し込んでいく方法です。rbyte ∧ 00000001 で最下位ビットだけを取り出し、rを1ビット左シフトしてから論理和で下端に加えます。その後 rbyte を1ビット右シフトして次のビットを最下位に持ってくれば、8回の繰返しで並びが逆になります。

選択肢ごとの解説

出典:令和4年度 公開問題 基本情報技術者試験 科目B 問6(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。