Java &、&&、|、||、^、<<、>>、~、>>>等运算符
&(按位与)
运算规则:两个为真才为真 (1&1=1 , 1&0=0 , 0&1=0 , 0&0=0)
例:3&5=1
3的二进制位是0000 0011,5的二进制位是0000 0101 ,那么就是011 & 101,由按位与运算规则得知,001 & 101等于0000 0001,最终值为1
&&(逻辑与)
运算规则:&&逻辑与也称为短路逻辑与,先运算&&左边的表达式,一旦为假,后续不管多少表达式,均不再计算,一个为真,再计算右边的表达式,两个为真才为真。
|(按位或)
运算规则:一个为真即为真(1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1)
例:6|2=6
6的二进制位0000 0110 , 2的二进制位0000 0010 , 110|010为110,最终值0000 0110,故6|2等于6
||(逻辑或)
运算规则:一个为真即为真,后续不再计算,一个为假再计算右边的表达式。
^(异或运算符)
运算规则:相同为0,不同为1 (1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0)
例 5^9=12
5的二进制位是0000 0101 , 9的二进制位是0000 1001,也就是0101 ^ 1001,结果为1100 , 00001100的十进制位是12
<<(左移运算符)
5<<2的意思为5的二进制位往左挪两位,右边补0,5的二进制位是0000 0101 , 就是把有效值101往左挪两位就是0001 0100 ,正数左边第一位补0,负数补1,等价于:result=num×2的n次方十进制位是20
>>(右移运算符)
5的二进制位是0000 0101,右移两位就是把101左移后为0000 0001,正数左边第一位补0,负数补1,等价于:result=num÷2的n次方,结果为1
~(取反运算符)
运算规则:将0变为1,1变为0
例:5的二进制位是0000 0101,取反后为1111 1010,值为-6
>>>(无符号右移运算符)
运算规则:
对于正数:无符号右移是高位补0,移多少位补多少个0
对于负数:正数的二进制,取反,再加1
Java &、&&、|、||、^、<<、>>、~、>>>等运算符的更多相关文章
- java移位运算符具体解释
java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的全部位都左移 ...
- JAVA的运算符和条件结构
一.JAVA的运算符. 1.赋值运算符 赋值就是把一个变量的值赋给另一个变量. 语法: 变量名=表达式 例如 n = m + 5 2.算术运算符 算术运算符是数学中常用的加.减.乘 ...
- java位移运算符3 转
https://www.cnblogs.com/winsker/p/6728672.html 移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数. 理解java移位运算符 运算 ...
- java位移运算符 转
https://blog.csdn.net/qq_36134429/article/details/78286416#commentsedit java移位运算符不外乎就这三种:<<(左移 ...
- Java 位运算符和 int 类型的实现
Java 位运算符和 int 类型的实现 其他运算符 # 算术运算符 +.-.*./.++i.i++.--i.i-- # 关系运算符 ==.!=.>.<.>=.<= # 逻辑运 ...
- 【java】运算符
Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+ - * / % ++ -- 关系运算符(6):== != > >= ...
- java 增量运算符
//java 增量运算符 public class Test16{ public static void main(String args[]) { int x1=10; x1+=3; //x1=x1 ...
- java三元运算符详解
最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用题.鉴于很多资料上对于java三元运算的讲解过于简单,网上的资料与题目也不是很完善,对于结果答案分析不一,故 ...
- 利用Java位运算符,完成Unsigned转换(无符号)
方案二:利用Java位运算符,完成Unsigned转换. 正常情况下,Java提供的数据类型是有符号signed类型的,可以通过位运算的方式得到它们相对应的无符号值,参见几个方法中的代码: publi ...
- java移位运算符详解
http://soft.chinabyte.com/database/195/11553695.shtml java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和 ...
随机推荐
- springcloud+gateway微服务整合swagger
单一的微服务集成swagger: maven: <dependency> <groupId>io.springfox</groupId> <artifactI ...
- 数值分析:最小二乘与岭回归(Pytorch实现)
Chapter 4 1. 最小二乘和正规方程 1.1 最小二乘的两种视角 从数值计算视角看最小二乘法 我们在学习数值线性代数时,学习了当方程的解存在时,如何找到\(\textbf{A}\bm{x}=\ ...
- java-数据库操作(JDBC)
前言:JDBC用到的API和常用方法 DriverMannager类 加载驱动并创建与数据库的连接,通常使用Class类的静态方法forName()来实现加载驱动,使用getConnection(St ...
- Pytest用例编写1
一.编写pytest测试样例非常简单,只需要按照下面的规则: 测试文件以test_开头(以_test结尾也可以) 测试类以Test开头,并且不能带有 __init__ 方法 测试函数以test_开 ...
- Spring IOC-基于XML配置的容器
Spring IOC-基于XML配置的容器 我们先分析一下AbstractXmlApplicationContext这个容器的加载过程. AbstractXmlApplicationContext的老 ...
- Solution -「Gym 102979E」Expected Distance
\(\mathcal{Description}\) Link. 用给定的 \(\{a_{n-1}\},\{c_n\}\) 生成一棵含有 \(n\) 个点的树,其中 \(u\) 连向 \([1, ...
- 【程序员的实用工具推荐】 Mac 效率神器 Alfred
Alfred 是一款功能非常强大,能有效提升 Mac 电脑使用效率的神器.可以说有了 Alfred 你就基本上可以脱离鼠标实现各种操作.相比 Mac 自带的聚焦搜索,完全可以称得上拥有碾压性的优势. ...
- 给博客加入链接安全跳转页(添加一个和CSDN一样的链接跳转页)
本文首发于青云工作室 原文链接为 https://qystudio.ltd/posts/25250.html 前言 或是出于优化 SEO,或是出于加强网站体验,很多博客都给文章中的外部链接加上了个二次 ...
- DNS中的FQDN
FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称.(通过符号".") 例如:主机名是bigserver,域名是mycomp ...
- 推荐一款好用的国产web报表软件,轻松搞定复杂报表
随着经济全球化程度的逐步加深以及全球市场的加速整合以便最大程度地对企业资源进行整合,从而达到降低成本和提高效率的目的.Web报表由于借助于web平台,即运用了B/S模式,即"浏览器/服务器& ...