一,与(&)
规则:0&0=0 0&1=0 1&0=0 1&1=1
示例:PORTC &= 0b01111111; //将C口的第7位清零
二,或(|)
规则:0|0=0 0|1=1 1|0=1 1|1=1
示例:PORTC |= 0b10000000; //将C口的第7位置1
三,异或(^)
规则:0^0=0 0^1=1 1^0=1 1^1=0
示例:PORTC ^= 0b10000000; //将C口的第7位翻转
四,取反(~)
扫描二维码关注公众号,回复:
7485525 查看本文章
规则:~0=1 ~1=0
示例:PORTC = ~0b10000000; //将C口各位取反
五,左移(<<)
规则:0b000000001<<2=0b00000100
示例:PORTC = (1 << PC7); //将C口的第7位置1
六,右移(>>)
规则:0b00001000>>2=0b00000010
示例:PORTC = (0b10000000 >> 7); //将C口操作为0b00000001
注1------调试专用
示例:PORTC ^= (1 << PC7); //其他位不变化,PC7翻转
注2------实现两个值的交换,而不必使用临时变量。
示例:交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:
a = a^b; //a=10100111
b = b^a; //b=10100001
a = a^b; //a=00000110