首先,让我直接说明这是我周三准备的期中考试。 我正在参加C编程课程,我们几乎没有触及Bitwise操作,但我们正在对它们进行测试。
例如,我们应该知道类似A,B,C和D的内容,如下所示:
unsigned int A, B, C, D;
A = 0xfedc & 0x300c;
B = 0xba98 | 0x1236;
C = 0x7654 ^ 0xfa00;
D = ~0xffff3210;
如果可能,您能否为我提供一个体面的教程/指南来理解这些概念?解释也很棒,但我不愿意给出实际的答案解释。
提前感谢您提供的帮助。
答案 0 :(得分:2)
答案 1 :(得分:2)
第一个问题是:
&
为按位AND,|
为按位OR,^
为按位XOR,~
为按位NOT?如果没有,你有一两个问题需要达到认识它们的程度。
然后你需要知道每个操作意味着什么...
1
,则b1 & b2
将为1
;否则,它将是0
。0
,则b1 | b2
将为0
;否则,它将是1
。0
或两个1
),则b1 ^ b2
将为0
;否则将是1
。0
,则~b1
将为1
;否则,它将是0
。您还需要认识到十六进制表示与数字中的位模式密切相关。
结合这些,您可以推导出所示问题的答案,将按位运算符应用于操作数的每一位。