关于格雷编码(Gray Code),下列说法正确的是( )。
位运算:&(与)、|(或)、^(异或)、~(取反)、<<(左移)、>>(右移)。异或性质:a^a=0,a^0=a。
区分逻辑运算(&&,||,!)和位运算(&,|,~,!)。左移右移注意符号位的处理(算术右移vs逻辑右移)。负数的位运算要小心。
【考点】二进制编码|格雷码定义|数字逻辑基础
命题人把这道题放在六级,就是卡住那些只背结论、不懂二进制与格雷码本质区别的考生。
看到格雷码三个字,第一反应必须是"相邻只有一位不同"。这是格雷码的核心定义,也是区别于普通二进制编码的唯一特征。选项B直接复述这个定义,其他选项都是干扰项:A说位数越多变化越多,完全违背格雷码"单比特翻转"的设计初衷;C把格雷码等同于二进制取反,这是混淆了"反码"概念;D说不能用于电路,更是常识性错误。
陷阱设计很典型。A利用"位数多=变化多"的直觉错误;C利用"取反"这个简单操作误导考生;D利用"不能用于"这种绝对化表述制造恐慌。如果你只背了"格雷码是二进制的一种",没理解它和二进制取反、反码的区别,就会选C。
反命题视角:如果把C改成"格雷码是二进制编码的循环移位",答案会变吗?会变,因为格雷码不是循环移位,而是特定构造(G(i)=i⊕(i>>1))。刷到这类题,先问自己"命题人想考我什么?"——是考定义、构造还是应用?