C语言的逻辑运算
三种逻辑运算符:||、&&、! ||:只要有一个表达式为真,该运算符的结果就是真。 &&:两个表达式全为真,该运算符的结果才为真。 !:取得相反的结果。 非零的值表示都为真(TRUE),零表示为FALSE。
||和&&运算符,只有第一个参数能确定表达式的值,那么后一个参数将不会进行运算。因此表达式a&&5/a不会造成被零除。
C语言中的位移运算
左移:位向左边移动,左边的位直接截断,右边填0,左移几位就填几个0。 逻辑右移:与左移相反,左边填0,低位截断。 算术右移:低位截断,左边填充最高位的有效值。 几乎所有的编译器和机器组合都对有符号数使用算术右移,对于无符号数使用逻辑右移。 使用算术右移主要是面对有符号数,因为有符号数的最高位是符号位,如果右移后,高位进行填,那么可能一个负数右移之后会变成一个正数。 在Java中,为了区分逻辑右移和算术右移,用>>表示算术右移,>>>表示逻辑右移。