跳到正文

平成22年度 秋期 ITパスポート試験 問68

这道题的解析和你的作答记录。

問68
頻出度★★☆

任意の8ビットのデータXと, 8ビットのデータ00001111をビットごとに排他的論理和をとった結果はどれか。ここで, 各1ビットのデータAとデータBの排他的論理和をとった結果Cの値は次のように表される。また, データの左方を上位, 右方を下位と呼ぶ。 排他的論理和

ABC
000
011
101
110
出典 平成22年度 秋期 ITパスポート試験 問68
解説

問 68

  • 错误ア

    高位与低位的角色正好颠倒了,而且低位的结果也是错的。掩码的高 4 位是 0000,所以高位不会反转,而是保持原样。另外,低 4 位「全部变为 1」是与 1111 做逻辑或(OR)运算时的结果,而不是异或;在异或运算下,低位各位是 0 还是 1 取决于 X 原来的值。

  • 错误イ

    对高位和低位的处理完全颠倒了。掩码 00001111 的高位是 0,所以「保持原样」的恰恰是高位,而排列着 1 的低位才是要反转的一侧。这个选项相当于把掩码误读成 11110000 时的描述。

  • 错误ウ

    低 4 位反转这一点是正确的,但对高 4 位的描述有误。与 0 做异或会保留原来的值,所以高位保持原样,并不会「全部变为 0」。高位被强制变为 0,那是用 0000 做逻辑与(AND)掩码时的结果,与异或是不同的运算。

  • エ

    正解 正确答案是エ。把图中的真值表逐位读一遍就会发现,异或(XOR)有两副面孔:另一方为 0 时(0 XOR 0=0、1 XOR 0=1)结果保持原来的值,另一方为 1 时(0 XOR 1=1、1 XOR 1=0)结果变成原值的反转。也就是说,XOR 起到了「另一方为 0 就保留、为 1 就反转」这样一个开关的作用。本题中的掩码是 00001111,高 4 位是 0000,低 4 位是 1111。因此 X 的高 4 位是与 0 做异或,保持原样;低 4 位是与 1 做异或,0、1 全部反转。表述这一点的正是エ。用具体例子确认一下:当 X=10100101 时,10100101 XOR 00001111 = 10101010,可以看到高位的 1010 保持不变,低位的 0101 反转成了 1010。

ここがポイント
  • 异或(XOR)的性质:两个输入不同时结果为 1,相同时结果为 0。按位来看,「与 0 异或值保持不变,与 1 异或值发生反转」,因此可以把它当作只反转掩码中置 1 的那些位的位掩码来使用。
  • 逻辑运算掩码的区分使用:与 0 做 AND 可把对应位清为 0,与 1 做 OR 可把对应位置为 1,与 1 做 XOR 则把对应位反转。把掩码上 0/1 的排列与高位、低位一一对应着读,是解题的关键。
用語
解答問68エ
练这一题

作答记录