Java基础(四):逻辑运算符和位运算符

Java基础系列文章



一、逻辑运算符

基本语法

    逻辑运算符,操作的都是boolean类型的变量或常量,而且运算得结果也是boolean类型的值 运算符说明: & 和 &&:表示"且"关系,当符号左右两边布尔值都是true时,结果才能为true。否则,为false | 和 || :表示"或"关系,当符号两边布尔值有一边为true时,结果为true。当两边都为false时,结果为false ! :表示"非"关系,当变量布尔值为true时,结果为false。当变量布尔值为false时,结果为true ^ :当符号左右两边布尔值不同时,结果为true。当两边布尔值相同时,结果为false 理解:异或,追求的是“异”! 逻辑运算符用于连接布尔型表达式,在Java中不可以写成 3 < x < 6,应该写成x > 3 & x < 6 区分“&”和“&&”: 相同点:如果符号左边是true,则二者都执行符号右边的操作 不同点: & : 如果符号左边是false,则继续执行符号右边的操作 && :如果符号左边是false,则不再继续执行符号右边的操作 区分“|”和“||”: 相同点:如果符号左边是false,则二者都执行符号右边的操作 不同点: | : 如果符号左边是true,则继续执行符号右边的操作 || :如果符号左边是true,则不再继续执行符号右边的操作

二、位运算符

    位运算符的运算过程都是基于二进制的补码运算

基本语法

1、左移:<<

    运算规则:在一定范围内,数据每向左移动一位,相当于原数据*2。(正数、负数都适用)
3<<4  类似于  3*2的4次幂 => 3*16 => 48
-3<<4  类似于  -3*2的4次幂 => -3*16 => -48
案例: 高效的方式计算2 * 8的值(经典面试题)
答案:2 << 3 、  8  << 1

2、右移:>>

    运算规则:在一定范围内,数据每向右移动一位,相当于原数据/2。(正数、负数都适用) 【注意】如果不能整除,向下取整
69>>4  类似于  69/2的4次 = 69/16 =4
-69>>4  类似于  -69/2的4次 = -69/16 = -5

3、无符号右移:>>>

    运算规则:往右移动后,左边空出来的位直接补0。(正数、负数都适用)
69>>>4  类似于  69/2的4次 = 69/16 =4
-69>>>4   结果:268435451

4、按位与:&

    运算规则:对应位都是1才为1,否则为0 1 & 1 结果为1 1 & 0 结果为0 0 & 1 结果为0 0 & 0 结果为0
9 & 7 = 1
-9 & 7 = 7

5、按位或:|

    运算规则:对应位只要有1即为1,否则为0 1 | 1 结果为1 1 | 0 结果为1 0 | 1 结果为1 0 & 0 结果为0
9 | 7  //结果: 15
-9 | 7 //结果: -9

6、按位异或:^

    运算规则:对应位一个为1一个为0,才为1,否则为0 1 ^ 1 结果为0 1 ^ 0 结果为1 0 ^ 1 结果为1 0 ^ 0 结果为0
9 ^ 7  //结果为14
-9 ^ 7 //结果为-16

7、按位取反:~

    运算规则:对应位为1,则结果为0;对应位为0,则结果为1 ~0就是1 ~1就是0
~9  //结果:-10
~-9  //结果:8
经验分享 程序员 微信小程序 职场和发展