课时19:Java运算符(位运算符)

简介: 课时19介绍Java中的位运算符,涵盖进制转换、位与、位或及移位操作。重点讲解了二进制与其他进制的转换方法,通过具体范例演示了位与和位或运算的过程,并展示了八进制和十六进制的处理方式。此外,还解释了逻辑运算符(&&、||)与位运算符(&、|)的区别及其应用场景,特别是位运算在加密中的应用。

课时19:Java运算符(位运算符)

摘要:

1.进制转换

2.范例:位与操作

3.范例:位或运算

4.范例:观察一个程序(八进制处理)

 

01.进制转换

 

位运算指的是可以按照二进制、八进制、十六进制进行数据处理。基本上考虑最多的还是二进制。位运算之中可以采用数据移位的处理方式实现一些数据的内容变化。(一些密码加密都有位运算)。

位运算实现的关键问题在于要进行十进制与二进制的转换,这种转换原则是数据除2取余,一直除到0为止,所有的余数按照倒序排列。

例如给出19,除2得9余1,再除2得4余1,再除2得1,余0,再除2得0余1。所以19的二进制是10011,java中是32位整形,所以在前面需要补27个零。

进制转换也可以通过计算器进行。

image.png

点击查看换为程序员。

image.png

可以选择进制,选择十进制,输入19再点击二进制,结果就是10011。

image.png

知道了二进制的数据变化之后,就可以利用&(有一个0与的结果就是0)、|(有一个1或的结果就是1)进行位的计算。

 

02.范例:位与操作

 

输入

int numA = 19;
Int numB = 5;
System.out.println(numA & numB);

此处在位上使用单与

image.png

编译执行结果如下。

image.png

19的二进制:00000000 00000000 00000000 00010011

5的二进制:00000000 00000000 00000000 00000101

&计算:00000000 00000000 00000000 00000001

 

03.范例:位或运算

 

修改System.out.println(numA | numB);

image.png

编译执行结果如下。

image.png

19的二进制:00000000 00000000 00000000 00010011

5的二进制:00000000 00000000 00000000 00000101

|计算:00000000 00000000 00000000 00010111

 

位运算最大的特点是可以进行移位的处理:>>、<<。

输入

int num =2;
System.out.println(num << 2);

image.png

编译执行结果。

image.png

2的二进制:00000000 00000000 00000000 00000010;

移位处理:00000000 00000000 00000000 00001000

 

04.范例:观察一个程序(八进制处理)

 

输入

int num =023;
System.out.println(num );

image.png

编译执行:

image.png

如果直接写023,是八进制。

十六进制使用0x:

输入

int num =0x23;
System.out.println(num );

image.png

编译执行:

image.png

 

面试题:请解释&&和&、|和||的区别?


逻辑运算之中:

与操作

-&&:表示逻辑与运算,若干个判断条件如果前面有条件返回了false,那么后面的条件不再判断,最终结果为false;

-&:所有的判断条件都要执行

或操作

-||:表示逻辑或运算,若干个判断条件如果前面有条件返回了true,那么后续条件不再判断,最终结果就是true;

-|:所有的判断条件都要执行


位运算:

-&:运算的两个数据位如果有一个是0结果就是0,全为1时结果就是1

-|:运算的两个数据位如果有一位是1,最终的结果就是1

 

二进制十六进制往往会在加密中使用。

相关文章
|
6月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
93 13
|
6月前
|
SQL IDE 算法
《从头开始学java,一天一个知识点》之:运算符与表达式:算术、比较和逻辑运算
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问&quot;`a==b`和`equals()`的区别&quot;,大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 这个系列为你打造Java「速效救心丸」,每天1分钟,地铁通勤、午休间隙即可完成学习。直击高频考点和实际开发中的「坑位」,拒绝冗长概念,每篇都有可运行的代码示例。明日预告:《控制流程:if-else条件语句实战》。
108 6
|
6月前
|
存储 Java 编译器
课时11:综合实战:简单Java类
本次分享的主题是综合实战:简单 Java 类。主要分为两个部分: 1.简单 Java 类的含义 2.简单 Java 类的开发
|
6月前
|
Java
课时18:Java运算符(逻辑运算符)
课时18介绍了Java中的逻辑运算符(与、或、非)。通过范例详细讲解了非操作的使用,展示了如何正确应用逻辑非(!)。接着分别探讨了与操作(& 和 &&)及或操作(| 和 ||),强调了短路运算符(&& 和 ||)在性能和安全性上的优势。课程通过具体代码示例演示了不同逻辑运算符的效果及其应用场景。
163 5
|
6月前
|
存储 Java 数据安全/隐私保护
Java语言位运算符详解
Java语言提供了7种位运算符:按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(&lt;&lt;)、带符号右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)。这些运算符主要用于对long、int、short、byte和char类型的数据进行二进制位级别的操作,不能用于double、float和boolean类型。文中详细讲解了每种运算符的规则和应用场景,并指出位运算在实际开发中有重要应用价值,不仅限于面试。
284 2
|
6月前
|
Oracle Java 关系型数据库
课时37:综合实战:数据表与简单Java类映射转换
今天我分享的是数据表与简单 Java 类映射转换,主要分为以下四部分。 1. 映射关系基础 2. 映射步骤方法 3. 项目对象配置 4. 数据获取与调试
110 1
|
6月前
|
搜索推荐 Java Android开发
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
245 0
|
2月前
|
安全 算法 Java
Java 多线程:线程安全与同步控制的深度解析
本文介绍了 Java 多线程开发的关键技术,涵盖线程的创建与启动、线程安全问题及其解决方案,包括 synchronized 关键字、原子类和线程间通信机制。通过示例代码讲解了多线程编程中的常见问题与优化方法,帮助开发者提升程序性能与稳定性。
131 0
|
2月前
|
Java API 调度
从阻塞到畅通:Java虚拟线程开启并发新纪元
从阻塞到畅通:Java虚拟线程开启并发新纪元
284 83

热门文章

最新文章