关于按位逻辑与运算的疑问
程序代码:
#include <stdio.h> int main() { putchar((5>>1 & 1u)? '1' : '0'); return 0; }
B代表二进制数。
我的理解是:5右移一位后变成(10)B,也就是2,((10)B & 1u)的结果还是(10)B,(5>>1 & 1u)也就是(10)B,值为2
2 ? '1' : '0'的值是1,与((5>>1 & 1u)? '1' : '0')的值是0不同
那么问题究竟在哪。
可能我表述的不太清,就是问putchar((5>>1 & 1u)? '1' : '0')这个每一步的运算,最后为什么是0?
[此贴子已经被作者于2018-7-23 17:35编辑过]