本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成31年度 春期 高度情報技術者試験問題と解説

問1

0以上255以下の整数 n に対して、
 next(n) = n+1 (0 ≦ n < 255)
 next(n) = 0 (n = 255)
と定義する。next(n) と等しい式はどれか。ここで、x AND y 及び x OR y は、それぞれ x と y を2進数表現にして、桁ごとの論理積及び論理和をとったものとする。

ア (n+1) AND 255

イ (n+1) AND 256

ウ (n+1) OR 255

エ (n+1) OR 256


正解


解説

255を2進数表現すると 1111 1111
256を2進数表現すると 1 0000 0000
である。

また、 
next(0) =  0 + 1 = 1
next(254) = 254 + 1 = 255
next(255) = 255 + 1 = 0
である。

これらを踏まえる。

ア 正しい。
n = 0 のとき
1 AND 255 = 0000 0001 AND 1111 1111 = 1
n = 254 のとき
255 AND 255 = 1111 1111 AND 1111 1111 = 255
n = 255 のとき
256 AND 255 = 1 0000 0000 AND 1111 1111 = 0
すべて成り立つ。

イ n = 0 のとき
1 AND 256 = 0000 0001 AND 1 0000 0000 = 0
n = 254 のとき
255 AND 256 = 0111 1111 AND 1 0000 0000 = 0
n = 255 のとき
256 AND 256 = 1 0000 0000 AND 1 0000 0000 = 256

ウ n = 0 のとき
1 OR 255 = 0000 0001 OR 1111 1111 = 1111 1111 = 255
n = 254 のとき
255 OR 255 = 1111 1111 OR 1111 1111 = 255
n = 255 のとき
256 OR 255 = 1 0000 0000 OR 1111 1111 = 1 1111 1111 = 511

エ n = 0 のとき
1 OR 256 = 0000 0001 OR 1 0000 0000 = 1 0000 0001 = 257
n = 254 のとき
255 OR 256 = 1111 1111 OR 1 0000 0000 = 1 1111 1111 = 511
n = 255 のとき
256 OR 256 = 1 0000 0000 OR 1 0000 0000 = 256

目次 問2