【Java SE】位运算和移位运算注意事项

简介: 【Java SE】位运算和移位运算注意事项

🐳1.位运算

🐬1.1按位与 &:

如果两个二进制位都是 1, 则结果为 1, 否则结果为 0

1. public class Test {
2. public static void main(String[] args) {
3. int a=10;
4. int b=1;
5. int c=a&b;
6.         System.out.println(c);
7.     }
8. }

🐬1.2按位或 |:

如果两个二进制位都是 0, 则结果为 0, 否则结果为 1

1. public class Test {
2. public static void main(String[] args) {
3. int a=10;
4. int b=1;
5. int c=a|b;
6.         System.out.println(c);
7.     }
8. 
9. }

🐬1.3按位取反 ~:

如果该位为 0 则转为 1, 如果该位为 1 则转为 0

1. public class Test {
2. public static void main(String[] args) {
3. 
4. int a=10;
5.          a=~a;
6.         System.out.println(a);
7.     }
8. 
9. }

🐬1.4按位异或 ^:

如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1

1. public class Test {
2. 
3. public static void main(String[] args) {
4. int a=10;
5. int b=1;
6. int c=a^b;
7.         System.out.println(c);
8.     }
9. 
10. }

🐳2.移位运算

🐬2.1 左移 <<:

最左侧位不要了, 最右侧补 0

1. public class Test {
2. 
3. public static void main(String[] args) {
4. int a=10;
5. int b=a<<1;
6.         System.out.println(b);
7. 
8.     }
9. 
10. }

🐬2.2右移 >>:

最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

1. public class Test {
2. public static void main(String[] args) {
3. int a=10;
4. int b=a>>1;
5.         System.out.println(b);
6.     }
7. 
8. 
9. }

🐬2.3无符号右移 >>>:

最右侧位不要了, 最左侧补 0.

1. public class Test {
2. public static void main(String[] args) {
3.         System.out.println(1>>>1);
4.         System.out.println(-1>>>1);
5.     }
6. 
7. }

相关文章
|
9月前
|
安全 Java API
Java SE 与 Java EE 区别解析及应用场景对比
在Java编程世界中,Java SE(Java Standard Edition)和Java EE(Java Enterprise Edition)是两个重要的平台版本,它们各自有着独特的定位和应用场景。理解它们之间的差异,对于开发者选择合适的技术栈进行项目开发至关重要。
1440 1
|
12月前
|
设计模式 算法 Java
Java SE 与 Java EE 组件封装使用方法及实践指南
本指南详细介绍了Java SE与Java EE的核心技术使用方法及组件封装策略。涵盖集合框架、文件操作、Servlet、JPA、EJB和RESTful API的使用示例,提供通用工具类与基础组件封装建议,如集合工具类、文件工具类、基础Servlet、实体基类和服务基类等。同时,通过分层架构集成示例展示Servlet、EJB和JPA的协同工作,并总结组件封装的最佳实践,包括单一职责原则、接口抽象、依赖注入、事务管理和异常处理等。适合希望提升代码可维护性和扩展性的开发者参考。
393 0
|
Java 数据安全/隐私保护 计算机视觉
Java位运算的详解
总的来说,Java位运算是一种强大的工具,它可以让我们直接操作整数的二进制位,实现各种复杂的功能。但是,位运算也是一把双刃剑,如果不正确地使用,可能会导致各种难以预料的问题。因此,使用位运算时,一定要小心谨慎,确保理解了每个运算的含义和效果。
332 24
|
SQL IDE 算法
《从头开始学java,一天一个知识点》之:运算符与表达式:算术、比较和逻辑运算
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问&quot;`a==b`和`equals()`的区别&quot;,大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 这个系列为你打造Java「速效救心丸」,每天1分钟,地铁通勤、午休间隙即可完成学习。直击高频考点和实际开发中的「坑位」,拒绝冗长概念,每篇都有可运行的代码示例。明日预告:《控制流程:if-else条件语句实战》。
343 6
|
存储 Java
Java中的位运算
本文介绍了位运算符的基础知识,包括原码、反码、补码的概念,以及常见的位运算符(如移位运算符 `&lt;&lt;`、`&gt;&gt;`、`&gt;&gt;&gt;` 和逻辑运算符 `&`、`|`、`^`、`~`)的使用方法和规则。通过具体的二进制示例,详细解释了这些运算符的工作原理,帮助读者更好地理解位运算在计算机中的应用。
243 2
Java中的位运算
|
JSON Java 开发工具
Java服务端集成Google FCM推送的注意事项和实际经验
本文分享了作者在公司APP海外发布过程中,选择Google FCM进行消息推送的集成经验。文章详细解析了Java集成FCM推送的多种实现方式,包括HTTP请求和SDK集成,并指出了通知栏消息和透传消息的区别与应用场景。同时,作者还探讨了Firebase项目的创建、配置和服务端集成的注意事项,帮助读者解决文档混乱和选择困难的问题。
1074 1
|
JSON Java 开发工具
Java服务端集成Google FCM推送的注意事项和实际经验
公司的app要上海外,涉及到推送功能,经过综合考虑,选择Google FCM进行消息推送。 查看一些集成博客和官方文档,看的似懂非懂,迷迷惑惑。本篇文章除了将我实际集成的经验分享出来,也会对看到的博客及其中产生的疑惑、注意事项一一评论。 从官方文档和众多博客中,你会发现Java集成FCM推送有多种实现方式,会让生产生文档很乱,不知作何选择的困惑。
627 0
|
Java
java基础(4)public class 和class的区别及注意事项
本文讲解了Java中`public class`与`class`的区别和注意事项。一个Java源文件中只能有一个`public class`,并且`public class`的类名必须与文件名相同。此外,可以有多个非`public`类。每个类都可以包含一个`main`方法,作为程序的入口点。文章还强调了编译Java文件生成`.class`文件的过程,以及如何使用`java`命令运行编译后的类。
801 3
java基础(4)public class 和class的区别及注意事项
|
Oracle Java 关系型数据库
Java(TM) Platform SE binary 已停止工作”的解决方法
Java(TM) Platform SE binary 已停止工作”的解决方法
2023 141
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
这篇文章解释了Java中`int`基本数据类型和其包装类`Integer`之间的区别,并指出在进行`==`运算时,`Integer`会拆箱为`int`类型,然后比较它们的值是否相等。
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?