RELAY_STA[i] &= 0xf0;
RELAY_STA[i] |= 1;
结果是多少,要有过程
------解决方案--------------------
RELAY_STA[i] |=(1<<4)的意思是RELAY_STA[i]的第4位 置1.如:RELAY_STA[i]的值为6,二进制表示为 0000 0110,那么RELAY_STA[i] |=(1<<4)之后的二进制为:0001 0110,十六进制为0x16
RELAY_STA[i] &= 0xf0;的意思是0~3位清0。如:RELAY_STA[i]的值为6,二进制表示为 0000 0110,那么RELAY_STA[i] &= 0xf0之后的二进制为:0000 0000,即最终值为0
RELAY_STA[i] |= 1可以看成是RELAY_STA[i] |= 0x1,这样比较直观,意思是第0位置1.如:RELAY_STA[i]的值为6,二进制表示为 0000 0110,那么RELAY_STA[i] |= 0x1之后的二进制为:0000 0111,十六进制为0x7