博客
关于我
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/

你可能感兴趣的文章
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
mysql 状态检查,备份,修复
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>
mysql 用户管理和权限设置
查看>>
MySQL 的 varchar 水真的太深了!
查看>>
mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
查看>>
MySQL 的instr函数
查看>>
MySQL 的mysql_secure_installation安全脚本执行过程介绍
查看>>
MySQL 的Rename Table语句
查看>>
MySQL 的全局锁、表锁和行锁
查看>>
mysql 的存储引擎介绍
查看>>
MySQL 的存储引擎有哪些?为什么常用InnoDB?
查看>>