修了試験 2012-12-16実施分 基本情報技術者試験 問2
負数を2の補数で表すとき,8ビットの2進正数nに対し-nを求める式はどれか。 ここで,+は加算を表し,ORはビットごとの論理和,XORはビットごとの排他的論理和を表す。
正答4
解説
正解は4です。 2の補数で負数を作る手順を、ビット演算で表す問題です。 2の補数は「全ビットを反転してから1を加える」ことで求めます。 全ビットの反転は、各ビットと1との排他的論理和(XOR)で実現できます。 【選択肢別解説】 1:× 10000000との論理和(OR)は、先頭ビットを1にするだけです。 ほかのビットは反転されません。 例えばn=00000001では10000010となり、-1を表す11111111になりません。 2:× 11111110との論理和は、下位1ビット以外をすべて1にしてしまいます。 nの値の情報が失われるため、正しい負数は得られません。 n=00000001では11111110となり、-1になりません。 3:× 10000000との排他的論理和は、先頭ビットだけを反転します。 さらに11111111を加えると1を引くことになります。 n=00000001では10000000となり、-1になりません。 4:○ 11111111との排他的論理和で全ビットが反転します。 そこに00000001を加えるので、2の補数の定義どおりです。 n=00000001では11111110に1を加えて11111111となり、-1を正しく表します。 【ポイント】 2の補数は「反転して1を足す」、1の補数は「反転だけ」です。 迷ったらn=1など小さな値を代入し、-1が11111111になるかを確かめると確実です。まとめて解く
修了試験 2012-12-16実施分を通しで解く(80問)→