不同点:逻辑运算符执行逻辑操作,运算结果是一位逻辑值0、1或x;按位运算符产生一个与位宽较长操作数相等宽的值,该值的每一位都是两个操作数按位运算的结果;缩位运算符则仅对一个操作数进行运算,并产生一位的逻辑值。
相同点:除了逻辑非(!)与非(~)运算外都属于同一优先等级的运算符。
1,位运算符
按位运算的运算符是位运算符,原来的操作数有几位,结果就有几位,
若两个操作数位数不同,则位数短的操作数左端会自动补0。
(1),按位取反:~
(2),按位与:&
(3),按位或:|
(4),按位异或:^
(5),按位同或:^~或~^
2,缩位运算符(又称归约运算符)缩位运算符是单目运算符,按位进行逻辑运算,
结果是一位值!
(1),与缩位运算符:&
(2),或缩位运算符:|
(3),异或缩位运算符:^
(4),与,或,异或运算符和非运算符组成的复合运算符:~&,~|,~^
3,逻辑运算符(逻辑关系运算)
(1),逻辑与:&&
(2),逻辑或:||
(3),逻辑非:!
其中,逻辑与和逻辑或是双目运算符,逻辑非是单目运算符。如果操作数是多位的,则将操作数看做整体,若操作数中每一位都是0值则为逻辑0值,若操作数当中有1,则做位逻辑1值。