本帖最后由 荣丰宇 于 2016-8-29 22:51 编辑
出处:
I51开发板 第十二讲:基本运算符_单片机讨论_技术论坛_云汉电子社区
//www.icxbk.com/community/forum.php?mod=viewthread&tid=65777&extra=page%3D1
C语言常用的运算符为逻辑运算符和位运算符。
1、逻辑运算符
逻辑运算符包括与(&&)、或(||)、非(!)三种,用于逻辑运算。对于使用逻辑运算符的表达式,返回0表示假,返回1表示真。
与运算符(&&)表示2个条件同时满足(即2个条件都为真)时,返回结果才是真。
或运算符(||)用于检查2个条件中是否有1个为真的运算符,只要有1个条件为真,运算结果就为真。
逻辑非运算符(!)表示对表达式的真值取反。
2、位运算符
按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)、右移(>>)。
(1)按位与运算
按位与运算符“&”是双目运算符。其功能是参与运算的两路各对应的二进制位相与,只有对应的2个二进制位均为1是,结果才是1,否则为0.
(2)按位或运算
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进制位相或。只要对应的2个二进制位有1个为1时,结果位就为1。
(3)按位异或运算
按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进制位相异或,当两个对应的二进制位相异时,结果位就为1。
(4)求反运算
求反运算符“~”为单目运算符,具有右结合性。其功能是对参与运算的数的各二进制位求反。
(5)左移运算
左移运算符“<<”是双目运算符。其功能是把“<<”左边的运算数的各二进制位全部左移若干个位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。
(6)右移运算
右移运算符“>>”是双目运算符。其功能是吧“>>”左边的运算数的各二进制位全部右移若干位,“>>”右边的数指定移动的位数。
对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定。