我需要帮助才能理解本声明中发生的事情:
#define LDA(m) (LDA_OP << 5 | ((m) & 0x001f))
谢谢
答案 0 :(得分:0)
y << x
是y
的{{1}} x
。
x & y
是x
和y
的{{3}}。
答案 1 :(得分:0)
因此,左移运算符就像在基数10中乘以10,而是在基数2中乘以2,例如:
在基地10
300 * 10 = 3000
在基地2:
0b0001 * 2 = 0b0010 = 0b0001&lt;&lt; 1
与&lt;&lt; b你&#34;推&#34;数字a,b放在左边。
和or运算符(|) 你需要取两位,如果其中一个或两个都为真(1)那么结果为真。
例如:
0b0010 | 0b0001 = 0b0011
0b0010 | 0b0010 = 0b0010
如果您对此运算符有问题,只需尝试使用相同的数字,但使用二进制数。