布尔运算&位运算符&逻辑运算符

前言

最近在学习《深入了解计算机系统》,之前做过的Lab1依然让我印象深刻,在此对跟其有关的一些基础知识进行回顾。

布尔运算

&与|相互满足分配律

a&(b|c) = (a&b)|(a&c)

^满足结合律

(a ^ b) ^ c = a ^ (b ^ c)
a ^ a = 0
基本应用(交换两个整数):
a ^ = b; b ^ = a; a ^ = b;

位运算符与逻辑运算符

&与&&都可用于逻辑表达式,但&无论如何都会检测所有条件,而&&一旦可得出结果便不再检测,其它亦然。

移位运算符

C语言中左移都是补0,右移>>分逻辑右移和术数右移,逻辑右移补0,算术右移补符号位;而Java中算术右移为>>,逻辑右移为>>>。

你可能感兴趣的:(CSAPP)