【java提高】(17)---Java 位运算符
Java 位运算符 &、|、^、~、<<、>>
以前学过有关java的运算符,不过开发了这么久也很少用过这个。现在由于开发需要,所以现在再来回顾整理下有关java的运算符。
主要运算符有以下:与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)。
一 与(&) 和 (|)
1、&(按位与)
规则:将两边的数转换为二进制位,然后运算最终值。运算规则即(两个为真才为真)1&1=1 , 1&0=0 , 0&1=0 , 0&0=0。
举例:
4&7 这个运算的结果是多少?

3&5 这个运算的结果是多少?

2、|(按位或)
规则 将两边的数转换为二进制位,然后运算最终值。不同的是运算规则(一个为真即为真)1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1
举例
3|6 这个运算的结果是多少?

5|9 这个运算的结果是多少?

二、异或(^) 和 取反(~)
1、异或(^)
规则 异就是不同,其运算规则为1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0
举例
3^6 这个运算的结果是多少?

5^9 这个运算的结果是多少?

2、取反(~)
规则 取反就是1为0,0为1。
举例
~5 这个运算的结果是多少?

这个其实就是,就是把1变0,0变1。
注意:二进制中,最高位是符号位 1表示负数,0表示正数。
~15 这个运算的结果是多少?

三、左移运算(<<) 和 右移运算(>>)
1、左移运算(<<)
规则 左移就是把所有位向左移动几位。
举例
6 << 2 这个运算的结果是多少?

9 << 2 这个运算的结果是多少?

公式 M << n 其实可以这么算 M << n = M * 2^n
2、右移运算(>>)
规则 这个跟左移运算大体是一样的,但是还是有点不同的,不同点在于对于正数和负数补位的时候补的不一样,负数补1,正数补0
举例
12 >> 2 这个运算的结果是多少?

-9 >> 2 这个运算的结果是多少?

从这里就可以看出 正数右移补0,负数右移补1。
四、负数的进制表示
我们来思考下
1、负的十进制的转二进制
对于十机制的负数,如何用二进制来表示:
思路三步曲: 1、正数二进制 2、反码 3、反码+1
举例:
-1 如何转换成二进制?

说明 -1在计算机里用二进制表达就是全1
2、负的二进制转十进制
上面思路是负的十进制转二进制,那么同样负的二进制转10进制跟上面相反就可以了。
思路三步曲 1、负数的二进制码 2、二进制码-1 3、取反
举例
1111 1101 如何转换成十进制?

参考
3、Java基础——十进制负数转换为二进制、八进制、十六进制
我相信,无论今后的道路多么坎坷,只要抓住今天,迟早会在奋斗中尝到人生的甘甜。抓住人生中的一分一秒,胜过虚度中的一月一年!(3)
【java提高】(17)---Java 位运算符的更多相关文章
- java学习笔记之位运算符
java的位运算符主要针对二进制数的位进行逻辑运算,主要包括以下几种的位运算符 1.与运算符(&) 与运算符的使用规律是两个操作数中位为1的时候结果为1,否则都是0,例如 3&5=1 ...
- Java基础——逻辑运算符、位运算符
逻辑运算符.位运算符.三元运算符 逻辑运算符 public class Demon05 { public static void main(String[] args) { ...
- Java提高篇——Java实现多重继承
多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承.有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需 ...
- Java提高篇——Java 异常处理
异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用Syst ...
- java基础篇 之 位运算符
按位操作符 按位操作符用来操作基本数据类型中的单个"比特"(bit),即二进制位.按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果. 我们常用的按位操作 ...
- Java学习笔记——关于位运算符的问题
我就之直接贴图了!不想排版了! 有什么问题,欢迎大家指出,帮助我提高,谢谢!
- Java面试17|Java基础
Linux上配置Java基础环境: https://www.cnblogs.com/kerrycode/archive/2015/08/27/4762921.html 1.final相关 (1)fin ...
- 【java提高】---java反射机制
java反射机制 一.概述 1.什么是反射机制 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态 ...
- [java基础] 002 - 位运算符的详解和妙用
一:位运算符详解 位运算符主要用来对操作数二进制的位进行运算.按位运算表示按每个二进制位(bit)进行计算,其操作数和运算结果都是整型值. Java 语言中的位运算符分为位逻辑运算符和位移运算符两类, ...
- Java总结——常见Java集合实现细节(1)
Java提高——常见Java集合实现细节(1) 2018年04月18日 15:07:35 阅读数:25 集合关系图 Set和Map set代表一种集合元素无序.集合元素不可重复的集合 map代表一种由 ...
随机推荐
- WebSocket+Netty构建web聊天程序
WebSocket 传统的浏览器和服务器之间的交互模式是基于请求/响应的模式,虽然可以使用js发送定时任务让浏览器在服务器中拉取但是弊端很明显,首先就是不等避免的延迟,其次就是频繁的请求,让服务器的压 ...
- 腾讯云tomcat问题
Ubuntu启动特别慢 1.在$JAVA_HOME/jre/lib/security/java.security中,把securerandom.source=file:/dev/urandom替换成s ...
- Java编程思想:内部类其他知识点
public class Test { public static void main(String[] args) { // InheritInner.test(); // EggTest.test ...
- vs调试看窗口风格
vs调试看窗口风格 技巧:在数值上右键,以16进制显示.
- 15号作品teamfinal使用体验
通过使用这款软件,可以轻松的查阅所处学期的任意周中某一天中的基教.一教.二教.三教和土木楼中的空教室,方便了同学去寻找空教室的方便,方便同学们上自习,节省寻找教室的时间,提供了非常大的便利. 打开界面 ...
- 动手造轮子:实现一个简单的 EventBus
动手造轮子:实现一个简单的 EventBus Intro EventBus 是一种事件发布订阅模式,通过 EventBus 我们可以很方便的实现解耦,将事件的发起和事件的处理的很好的分隔开来,很好的实 ...
- ASP.NET Core[源码分析篇] - Startup
应用启动的重要类 - Startup 在ASP.NET Core - 从Program和Startup开始这篇文章里面,我们知道了Startup这个类的重要性,它主要负责了: 配置应用需要的服务(服务 ...
- 个人永久性免费-Excel催化剂功能第89波-批量多图片转PDF
前一篇展示了从PDF中提取到有用信息如图片.文本.表格等功能,部分人可能对自己手中的转PDF格式的保护性有所顾虑,此篇从反向角度,提供数据保护作用,让PDF文件的数据保护更彻底,让文本型的PDF文件彻 ...
- 一些学习js的算法题目
1.排序 问题描述 编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列. 输入格式:输入只有一行,即三个整数,中间用空格隔开. 输出格式:输出只有一行,即排序后的结果. 输入输出样 ...
- Spark-windows安装
Spark 目的:达到能在pycharm中测试 1.安装必要的文件: JDK AnaConda spark hadoop jdk测试:java -version Anaconda测试: 打开Anaco ...