Java:位移运算符
Java中有三个位移运算符,用于对int类型整数的二进制补码进行操作:
1. "<<": 左移运算符
在二进制补码末尾添加“0”,之前的其他位相当于左移了一位,可看作成“乘以二”操作。
例如,a = 10,a 的二进制表示为“0000 0000 0000 0000 0000 0000 0000 1010”,“a << 1”表示a的二进制表示左移一位,结果为“0000 0000 0000 0000 0000 0000 0001 0100”,对应十进制的“20”。
b =-10, b 的二进制表示为“1111 1111 1111 1111 1111 1111 1111 0110”,“b<<1”代表b的二进制表示左移一位,结果为“1111 1111 1111 1111 1111 1111 1110 1100”,对应十进制“-20”。
2. ">>": 右移运算符
去掉二进制补码末尾几位,并在最前面添加符号位,正数添“0”、负数添“1”。">>1"去掉最后一位,">>2"去掉最后两位。不能单纯的看作成“除以二”操作。
例如,a = 9, “a>>1"代表a的二进制补码“0000 0000 0000 0000 0000 0000 0000 1001”右移一位,结果为“0000 0000 0000 0000 0000 0000 0000 0100”,对应十进制的“”(不是“除以二”操作)。
b = -9,“b>>1”代表b的二进制补码“1111 1111 1111 1111 1111 1111 1111 0111”右移一位,结果为“1111 1111 1111 1111 1111 1111 1111 1011”,对应十进制的“-5”。
3. ">>>": 无符号右移运算符
不再考虑符号位,在最前面添加“0”。(正数前面的“0”符号位可以省略)
例如,b = -9,“b >>> 1”代表b的二进制补码“1111 1111 1111 1111 1111 1111 1111 0111”右移一位,结果为“0111 1111 1111 1111 1111 1111 1111 1011”,对应十进制的“2147483643”。
public class Test {
public static void main(String[] args) {
int a = -9;
System.out.println("a = " + a);
System.out.println("a的二进制表示: " + Integer.toBinaryString(a));
System.out.println("");
// "<<"左移运算符
int a1 = a << 1;
System.out.println("a<<1 = " + a1);
System.out.println("a<<1后的二进制表示: " + Integer.toBinaryString(a1));
System.out.println("");
// ">>"右移运算符
int a2 = a >> 1;
System.out.println("a>>1 = " + a2);
System.out.println("a>>1后的二进制表示: " + Integer.toBinaryString(a2));
System.out.println("");
// 无符号右移运算符
int a3 = a >>> 1;
System.out.println("a >>> 1 =" + a3);
System.out.println("a>>>1后的二进制表示: " + Integer.toBinaryString(a >>> 1));
}
}
运行结果:

2018-01-02 18:51:21
Java:位移运算符的更多相关文章
- 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位移运算符2 转
https://blog.csdn.net/xxx134617/article/details/7454774 java中int类型占4个字节,二进制用补码表示: 3的二进制表示: 00000000 ...
- java 位移运算符
import org.junit.Test; /** * 1)<< : 左移运算符 * 2)>> : 右移运算符 (测试正数) * 3)>> : 右移运算符 (测试 ...
- java位移运算符|And&,操作二进制
在java中 逻辑运算符有四种:& , |, &&, || &: 如果第一个条件是fasle,还会判断第二个条件,只要有一个条件不满足,结果就返回false; ...
- Java位运算符、位移运算符;原码、反码、补码
文章背景:雪花算法 id 生成长度问题. Java位运算符 - 异或运算符(^)<p>运算规则:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1.</p> - ...
- Java补码表和位移运算符
在java中数据都是以二进制的形式保存的. 但是我们看到的数据怎么是10进制的? 因为java展示之前会自动调用toString()方法 这里以4位2进制为例,4位2进制只能表示16个数,即0-15. ...
- Java学习路线:Java中的位移运算符介绍
学习java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,学到java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累. 今天给大家分享的技术知识是:ja ...
- Java 中位移运算符 >>,>>>,<<
Java 中的三种位移运算符 java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : ...
- & 和 && 的区别,与(&)运算符、位移运算符(<< 、>>、>>>)的含义及使用(Java示例)
& 和 && 的区别,与(&)运算符.位移运算符(<< .>>.>>>)的含义及使用(Java示例) 1. & 和 & ...
随机推荐
- Python:IPC-Pipe与IPC-Manger
1,IPC-PIPE: 管道 pipe from multiprocessing import Process from multiprocessing import Pipe p1,p2 = Pip ...
- [18/12/07]String 字符串
一.基础概念 1. String类又称作不可变字符序列. 2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类. 3. Java字符串就是Unicode字符 ...
- Git使用02--branch分支, tag版本, 忽略文件 .gitingore
一.分支 # 查看分支 git branch # 创建分支 git branch 分支名 # 切换分支 git checkout name # 创建并切换分支 git checkout -b name ...
- hyper-net、ion、skip connection、fpn
resnet的skip connection用的也是eltwise相加 fpn的浅层和高层融合用的eltwise相加 hyper-net和ion都是使用的concat的方式 hyper-net网络结构 ...
- Latex 编辑器安装
MiKTex + TexStudio 1. 下载安装MiKTex,从http://www.miktex.org/下载basic-miktex-2.9.5872-x64.exe,一路默认安装... 或者 ...
- 随机森林算法-Deep Dive
0-写在前面 随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器.该分类器最早由Leo Breiman和Adele Cutler提出.简单来说,是一种bagging的思想,采用bootstra ...
- 正则匹配之replace方法
在我印象中,replace方法就是一个正则匹配,然后一股脑的替换掉匹配到的内容的一个方法. 在一次任务需求中,有这么一个需求,一行字符串里面,替换相应字符串,具体就是匹配到‘A’然后把‘A’替换成‘a ...
- 【洛谷P2746】[USACO5.3]校园网Network of Schools
校园网Network of Schools 第一问:Tarjan缩点,搞出每一个连通块,入度为零的连通块是需要必须接受新软件副本的,统计数量即可 第二问:要让整个图构成一个环,显然要将入度为零点和出度 ...
- 【luogu P3372 线段树1】 模板
线段树的模板题 题目链接:https://www.luogu.org/problemnew/show/P3372 update区间修改,query区间求和 #include <iostream& ...
- Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Kaiming He, Xiangyu Zh ...