不明白为什么结果是一个

时间:2016-03-27 19:02:04

标签: c bitmask

我必须创建一个函数,可以给出一个最多32位的int。如果奇数位为1,则应返回1,否则返回0。我知道如果它与掩码不匹配则返回零,但我不明白为什么如果它与掩码匹配则返回一个。这是因为&比较结果不等于0因此返回true,这是一个?

select * from allsections_list A left outer join allsections_settings S on A.Section_ID = S.Section_ID

1 个答案:

答案 0 :(得分:0)

&是按位和运算符,它的工作方式是从左参数中取一点,从右参数中取相同的位,执行'和'对它们进行操作,然后将结果保存为结果中的一点。它为每一点做到这一点。

因为'和'的结果只能是' 1'当两个参数都是' 1'时,使用0xAAAAAAAA作为一个参数与将第二个参数的每个偶数位设置为' 0'并保留所有奇数位具有相同的效果他们是。

如果上述结果为' 0',则表示所有奇数位均为' 0'。

还要记住除了' 0'当整数转换为布尔值时,将转换为true