当前位置: 代码迷 >> WinCE >> RELAY_STA[i] |=(1<<四); 是什么意思,结果是多少。1是指0000 0001吗?用Keil 4的时候
  详细解决方案

RELAY_STA[i] |=(1<<四); 是什么意思,结果是多少。1是指0000 0001吗?用Keil 4的时候

热度:77   发布时间:2016-04-28 12:54:00.0
RELAY_STA[i] |=(1<<4); 是什么意思,结果是多少。1是指0000 0001吗?用Keil 4的时候
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
  相关解决方案