Java中二进制计算与&、或|、非~、异或^、左移<<、右移>>、无符号右移>>>

简介: Java中二进制计算与&、或|、非~、异或^、左移<<、右移>>、无符号右移>>>

1、&二进制与

2 & 3
0B10 & 0B11 => 0B10 => 2

2、|二进制或

2 | 3
0B10 & 0B11 => 0B11 => 3

3、~二进制非

~3
= ~ 0B00000000 00000000 00000000 00000011
= 0B11111111 11111111 11111111 11111100  
取反之后变成了负数是补码表示 需要求其原码:补码的补码等于原码
=> 0B10000000 00000000 00000000 00000011  反码
=> 0B10000000 00000000 00000000 00000100  反码+1取补码 
= -4

4、^二进制异或

2 ^ 3
0B10 ^ 0B11 => 0B01 => 1

5、<< 左移

3 << 4
0B11 << 4 => 0B110000 => 48
相当于 
3 * 2 ** 4 = 3 * 16 = 48

6、>> 二进制有符号右移

12 >> 2
0B1100 >> 2 => 0B0011 => 3
-12 >> 2 
= 0B10000000 00000000 00000000 00001100 原码
=> 0B11111111 11111111 11111111 11110011 反码
=> 0B11111111 11111111 11111111 11110100 补码
>> 2
= 0B11111111 11111111 11111111 11111101 原码
=>  0B10000000 00000000 00000000 00000010 反码
=>  0B10000000 0000000 00000000 00000011 补码
= -3

7、>>> 二进制无符号右移

>>>与>>唯一的不同是它无论原来的最左边是什么数,统统都用0填充。

12 >>> 2
0B1100 >>> 2 => 0B0011 => 3
-12 >>> 2
= 0B10000000 00000000 00000000 00001100 原码
=> 0B11111111 11111111 11111111 11110011 反码
=> 0B11111111 11111111 11111111 11110100 补码
>>> 2
= 0B0011111111 11111111 11111111 111101
= 1073741821

备注 : 0B表示二进制


参考

  1. java中位运算^,&,<<,>>,<<<,>>>总结
相关文章
|
2月前
|
IDE Java 编译器
Java“找不到符号” 错误怎么查找解决
“找不到符号”是Java编程中常见的编译错误,通常表明代码试图访问未声明或不可见的符号(如类、方法或变量)。解决此问题需检查拼写、导入包是否正确及作用域是否合适。确保使用正确的类路径和库,可有效避免此类错误。若问题依旧,查阅官方文档或使用调试工具定位错误亦为良策。
2191 10
|
3月前
|
IDE Java 编译器
lombok编译遇到“找不到符号的问题”
【9月更文挑战第18天】当使用 Lombok 遇到 “找不到符号” 的问题时,可能是由于 Lombok 未正确安装、编译器不支持、IDE 配置不当或项目构建工具配置错误。解决方法包括确认 Lombok 安装、编译器支持,配置 IDE 和检查构建工具配置。通过这些步骤通常可解决问题,若问题仍存在,建议检查项目配置和依赖,或查看日志获取更多信息。
1352 2
|
4月前
|
Java
java:找不到符号
这篇文章讨论了Java编程中常见的错误信息 "找不到符号:类 entity",并提供了解决这个问题的一些方法和建议。
|
4月前
|
Java
成功解决:java: 找不到符号 符号: 方法 getSort() 位置: 类型为com.atguigu.gulimall.product.entity.CategoryEntity的变量 menu1
这篇文章讨论了Java中遇到的一个常见错误:"java: 找不到符号 符号: 方法 getSort() 位置: 类型为com.atguigu.gulimall.product.entity.CategoryEntity的变量 menu1",即在尝试调用一个不存在的方法时出现的问题,并提供了相应的解决方法。
|
6月前
|
Java
JAVA工具类匹配重复或者连续的字符和符号
JAVA工具类匹配重复或者连续的字符和符号
|
7月前
|
Java Kotlin
java调用kotlin代码编译报错“找不到符号”的问题
java调用kotlin代码编译报错“找不到符号”的问题
315 10
|
7月前
|
Java
java判断字符串中有多少数字字母或者符号
java判断字符串中有多少数字字母或者符号
|
XML Java 数据格式
Java解析xml文件遇到特殊符号&会出现异常的解决方案
XML当中特殊符号包括< > & ' "等,它们是不允许作为xml文件的PCDATA,若想使用话,需用转义符代替
283 0
|
Java
【MapStruct】引入MapStruct之后,项目启动java:找不到符号
【MapStruct】引入MapStruct之后,项目启动java:找不到符号
347 0
|
编解码 Java 对象存储
【java】对URL中的中文和符号进行UrlEncode转码
【java】对URL中的中文和符号进行UrlEncode转码
391 0
下一篇
DataWorks