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*24次幂 => 3*16 => 48

在这里插入图片描述

-3<<4  类似于  -3*24次幂 => -3*16 => -48

在这里插入图片描述

案例: 高效的方式计算2 * 8的值(经典面试题)

答案:2 << 3 、  8  << 1

2、右移:>>

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

在这里插入图片描述

-69>>4  类似于  -69/24= -69/16 = -5

在这里插入图片描述

3、无符号右移:>>>

  • 运算规则:往右移动后,左边空出来的位直接补0。(正数、负数都适用)
69>>>4  类似于  69/24= 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

在这里插入图片描述

相关文章
|
5月前
|
存储 Java 测试技术
Java零基础(22) - Java位运算符,了解一下!
【9月更文挑战第1天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
90 5
|
6月前
|
Java C# 容器
逻辑运算符Java代码的注释
这段代码及文字介绍了一个简单的Java程序以及Java编程的基础概念。代码展示了如何输出“Hello Word”。接着,用贴近生活的比喻解释了`package`(包)、`public`(访问修饰符)、`class`(类)、`static`(静态)和`void`(空)的概念。此外,还介绍了`System.out.println()`方法。进一步讲解了Java中的注释、数据类型(包括整型、浮点型、字符型和布尔型),变量和常量的概念,以及运算符、类型转换、赋值运算符、关系运算符与逻辑运算符等基础知识点。通过生动的例子帮助初学者更好地理解和记忆。
37 2
|
6月前
|
存储 Java 编译器
java的7种位运算符
java的7种位运算符
113 15
|
6月前
|
Java 测试技术 数据安全/隐私保护
Java零基础(20) - Java逻辑运算符,了解一下!
【8月更文挑战第20天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
83 2
|
8月前
|
Java
天呐!Java 逻辑运算符的秘密,你绝对不知道!
【6月更文挑战第14天】Java 逻辑运算符包括&&, ||和!,分别对应与、或和非操作。&&仅当两边操作数都为真时结果才为真,如`flag1 && flag2`;||只要一个操作数为真即为真,如`flag3 || flag4`。!用于取反,如`!flag5`。在复杂条件判断中,可组合使用这些运算符,如`(num1 &gt; num2 && num1 &lt; num3) || (num2 &gt; num1 && num2 &lt; num3)`。逻辑运算符还有短路特性,如`flag6 && (value++) &gt; 0`,若flag6为假,则不会计算后半部分。
43 1
|
8月前
|
Java 数据安全/隐私保护
尖叫!逻辑运算符如何重塑 Java 基本语法!
【6月更文挑战第14天】Java编程中的逻辑运算符(&&, ||, !)是构建复杂逻辑的关键。与运算符要求两边表达式均真,或运算符只需一侧为真,非运算符则对布尔值取反。在实际应用如登录检查、条件判断中,这些运算符组合使用能实现灵活的控制流程。理解并熟练运用逻辑运算符,能增强程序的逻辑处理能力,为编程带来广阔的可能性。探索和实践,让逻辑运算符在代码中释放更大潜力!
33 1
|
8月前
|
Java
崩溃!Java 逻辑运算符,让你重新认识基本语法!
【6月更文挑战第14天】Java中的逻辑运算符“&&”、“||”和“!”用于构建复杂的逻辑结构。例如,“&&”要求两边操作数均为真,表达式才为真;“||”只需一个操作数为真即为真;“!”是对布尔值取反。通过这些运算符,我们可以编写条件判断和逻辑推理,如示例所示,它们在程序设计中扮演着关键角色,使程序能根据不同条件作出相应反应。理解和熟练使用逻辑运算符对于编写智能灵活的程序至关重要。
48 1
|
7月前
|
算法 Java 测试技术
day13:Java零基础-位运算符
【7月更文挑战第13天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
61 0
|
9月前
|
存储 Java 程序员
Java中的位运算符详解
Java中的位运算符详解
157 1
|
8月前
|
Java
【逻辑运算符】在Java中 &&和&的区别 ||和|的区别
【逻辑运算符】在Java中 &&和&的区别 ||和|的区别
81 0

热门文章

最新文章