跳到正文

平成30年度 秋期 ITパスポート試験 問79

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

問79
頻出度★★☆

8ビットの2進データXと00001111について,ビットごとの論理積をとった結果はどれか。ここでデータの左方を上位,右方を下位とする。

出典 平成30年度 秋期 ITパスポート試験 問79
解説

問 79

  • 错误ア

    保留的一侧和变为 0 的一侧正好相反。得到「低 4 位变为 0、高 4 位保留」这样的结果,是掩码为 11110000(高位为 1、低位为 0)时的情况。而掩码 00001111 会清除 0 所在的位置(高位)、保留 1 所在的位置(低位),所以此描述不成立。

  • 错误イ

    「低 4 位全部变为 1」是逻辑或(OR)的性质,而不是 AND。在 AND 中,与 1 做运算并不会把位固定为 1,只是保持原值不变。此外保留的一侧(高位/低位)对应关系也反了,属于双重错误。

  • ウ

    正解 掩码常量 00001111 的高 4 位是 0000、低 4 位是 1111。逻辑与(AND)是「只有两者都为 1 时才为 1,否则为 0」的运算,因此某一位与 0 做 AND 必定得到 0(该位的值被清除),与 1 做 AND 则原值不变地保留下来。所以 X 与 00001111 做 AND 时,高 4 位与 0 做 AND 全部变为 0,低 4 位与 1 做 AND 后 X 的值原样保留。这与选项ウ「高 4 位全部变为 0,X 的低 4 位原样保留」一致。

  • 错误エ

    「高 4 位全部变为 1」这一点是错误的。掩码的高 4 位是 0,所以 AND 的结果不会是 1,而必定是 0。把位固定为 1 是 OR 的性质,AND 无法用 1 填充某些位。

ここがポイント
  • 位掩码中 AND 的基本性质:「与 0 做 AND 得到 0(清除该位)」「与 1 做 AND 保持原值(保留该位)」。只有掩码中为 1 的位置才让原值通过。
  • AND 与 OR 作用的区别:AND(00001111)是只取出所需低位的掩码,OR 是把特定位置为 1 的运算,二者不要混淆。
用語
解答問79ウ
练这一题

作答记录