博客
关于我
6个基础位运算符和4个逻辑运算符
阅读量:719 次
发布时间:2019-03-21

本文共 1465 字,大约阅读时间需要 4 分钟。

Java位运算与逻辑运算详解

判断单双数的代码示例

以下代码用于判断一个数是单数还是双数:

if(num & 1 == 0) { // 双数 } else { // 单数 }
这段代码通过检查二进制最后一个位是否为0,快速确定数的奇偶性。


6个位运算符的功能总结

1. 与运算符 &

  • 描述:两个位都为1时,结果为1,否则为0。
  • 示例
    5 in binary is 101, 6 is 110, so 5 & 6 = 101 & 110 = 100 (4) in decimal.
    1 & 1 = 1, 1 & 0 = 0, 0 & 0 = 0.

2. 或运算符 |

  • 描述:两个位中有任意一个为1,结果为1。
  • 示例
    5 | 6 = 101 | 110 = 111 (7) in binary.
    0 | 0 = 0, 1 | 0 = 1, 0 | 1 = 1.

3. 异或运算符 ^

  • 描述:两个位不同时为1,则结果为1,否则为0。
  • 示例
    true ^ true = false, false ^ false = false, true ^ false = true.
    5 (101) ^ 6 (110) = 011 (3) in binary.

4. 取反运算符 ~

  • 描述:将二进制位取反,0变1,1变0。
  • 示例
    ~1 = 0, ~0 = 1, ~true = false.

5. 左移运算符 <<

  • 描述:将二进制数左移若干位,低位补0。
  • 示例
    1 << 2 = 4 (100 in binary), 5 << 3 = 40 (101000 in binary).

6. 右移运算符 >>

  • 描述:将二进制数右移若干位,高位补0或符号位(取决于编译器引用的移位方式)。
  • 示例
    8 >> 3 = 1 (因为1000 >> 3 = 1, 1000 >> 3 in unsigned shift is 8 >> 3 = 1).
    要注意有符号移位和无符号移位的区别,通常默认为有符号移位。

4个逻辑运算符的功能总结

1. 短路与运算符 &&

  • 描述:如果前面一个操作为false,后面的不会执行。
  • 示例
    4 > 1 && 3 > 0 → true && true → true
    1 > 4 && 7 > 2 → false && ... → false

2. 短路或运算符 ||

  • 描述:如果前面一个操作为true,后面的不会执行。
  • 示例
    2 > 3 || 3 > 2 → false || ... → false
    5 > 3 || 2 > 4 → true || ... → true

3. 非运算符 !

  • 描述:将true变为false,false变为true。
  • 示例
    !true → false, !false → true
    !true && !false → false && true → false

4. 异或运算符 ^

  • 描述:与位运算的异或运算类似,返回相同值则为false,不同为true。
  • 示例
    true ^ true → false, false ^ false → false, true ^ false → true

积累与反思

通过上述总结,我对自己之前的知识点掌握情况有了更清晰的认识。写出来的内容虽然比之前更有条理,但其实学得的知识还是分散的。这种整理的过程让我意识到,知识体系的重要性acıне了。如果没有主线把握,很多东西都会很快遗忘。这也是为什么我会觉得,记录下具体案例是理解知识点的最好方式。

转载地址:http://dirrz.baihongyu.com/

你可能感兴趣的文章
MongoDB学习笔记(8)--索引及优化索引
查看>>
mongodb定时备份数据库
查看>>
mppt算法详解-ChatGPT4o作答
查看>>
mpvue的使用(一)必要的开发环境
查看>>
MQ 重复消费如何解决?
查看>>
mqtt broker服务端
查看>>
MQTT 保留消息
查看>>
MQTT 持久会话与 Clean Session 详解
查看>>
MQTT工作笔记0007---剩余长度
查看>>
MQTT工作笔记0009---订阅主题和订阅确认
查看>>
Mqtt搭建代理服务器进行通信-浅析
查看>>
MS Edge浏览器“STATUS_INVALID_IMAGE_HASH“兼容性问题
查看>>
ms sql server 2008 sp2更新异常
查看>>
MS UC 2013-0-Prepare Tool
查看>>
MSBuild 教程(2)
查看>>
msbuild发布web应用程序
查看>>
MSB与LSB
查看>>
MSCRM调用外部JS文件
查看>>
MSCRM调用外部JS文件
查看>>
MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)
查看>>