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

你可能感兴趣的文章
logstash mysql 准实时同步到 elasticsearch
查看>>
Luogu2973:[USACO10HOL]赶小猪
查看>>
mabatis 中出现&lt; 以及&gt; 代表什么意思?
查看>>
Mac book pro打开docker出现The data couldn’t be read because it is missing
查看>>
MAC M1大数据0-1成神篇-25 hadoop高可用搭建
查看>>
mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
查看>>
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
查看>>
MangoDB4.0版本的安装与配置
查看>>
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MariaDB的简单使用
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>