AVR位操作.pdf
文本预览下载声明
2、位逻辑运算符
符号 描述
位逻辑与
|
|
|| 位逻辑或
位逻辑异或
^
^
^^
~ 取补(取反),该符号是波浪
号,不要写 成负号。
位逻辑与运算
� 1 1
运算的规则是当两个位都为 时,结果为 ,否则为
0;(小提示:你可以在心中默念乘法来代替它,真与
真,就是1乘以1,真与假,就是1乘以0,假与假,就是
0 0
乘以 )
在单片机中,常用于某一位清0,其他位不变
� 例:二进制数111011110xEF
�
PORTC =0xEF (等价于PORTC=PORTC0xEF)
或PORTC=0 //第五位清0
| 位逻辑或
� | 0 0
运算的规则是当两个位都为 时,结果为 ,否则为
1;
(小提示,你可以理解为加号,只有假的加假的等于
0 0 0 1
假,即 加 等于 ,其余情况,只要有 个是真的,结
果都为真)
� 在单片机中,常用于某一位的置位。
例:我们将PB3和PB0口置为高电平。
� 0X09
PB3 PB0
PB3 PB0
PPBB33 PPBB00
PORTB |=0X09 (等价于PORB=PORTB|0X09)
^ 位逻辑异或
�^ 0
运算的规则是当两个位相同时,结果为 ,
� 否则为1;
�
此逻辑符常用于比较是否相同。
~ 取补(取反)
� ~ 运算的规则是当为1时结果为0,当为0
时,结果为1。
� 例如,将PA口全部取反。则
� PA^=PA;
3、位移运算符
左移 右移
0 0
0 0
向左移位就是在低位上补00,向右移位就是在高位上补00。
右移时可以保持结果的符号位,也就是右移时。如果最高
1 1 0
1 1 0
位为11,是符号位,则补11而不是补00。
例如: 当 时
a
显示全部