AND与运算,两个数据每个位进行与运算,只有当相同位的值都为1时,那个位结果为1;
2# 0000 0100 1101 0010
2# 0001 0110 0010 1110
AND 2# 0000 0100 0000 0010
OR或运算,两个数据每个位进行或运算,只要相同位的值有一个为1时,那个位结果就为1;
2# 0000 0100 1101 0010
2# 0001 0110 0010 1110
OR 2# 0001 0110 1111 1110
获取每个位的状态,将数据和要获取的位进行与运算;
如要获取第三位的状态时:
数据 AND 2#0100,数据的第三位如果为1,则第三位结果1;
数据的第三位如果为0,则第三位结果0 ;
其他位的数据均为0;
在通过WORD_TO_BOOL将16位数据转成布尔型数据,也可以通过判断与运算的最终结果,如果结果为0则,要获取的位的状态为FALSE,如果大于0,则为RUE;
还可以从过右位移后在与1的方式获取某一个位的状态 ,如获取最低位的状态,位移0位(不位移)后数据 在 AND 1;
将位状态赋于数据,如果位状态为真,则进行或运算,如果位状态为假,则进行与运算;