Java 位运算符:左移 << 右移 >> 无符号右移 >>>
来源:互联网 发布:基于java的毕业论文 编辑:程序博客网 时间:2024/05/17 09:18
概述
上一篇文章我们说到了Java运算符的优先级的问题,也给大家提供了一个简单易记的口诀,那么这一篇博文,我们就来看一看Java运算符中的位运算符:左移,右移,无符号右移。程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。
package test;public class Test24 { public static void main(String[] args){ System.out.println(Integer.toBinaryString(-7));//将整型-7转化为二进制形式显示 System.out.println(7>>2);//将整型7右移2位 System.out.println(7>>>2);//将整型7无符号右移2位 System.out.println(-7>>2);//将整型-7右移两位 System.out.println(-7>>>2);//将整型-7无符号右移两位 System.out.println(7<<2);//将整型7左移移两位 System.out.println(-7<<2);//将整型-7左移移两位 }}
结果为:
1111111111111111111111111111100111-2107374182228-28
解析:
7右移2位
00000000 00000000 00000000 00000111//7的二进制(不要告诉我你不知道为什么)右移两位后00000000 00000000 00000000 00000001//最左边用符号位填充转换十进制为:1
7无符号右移2位
00000000 00000000 00000000 00000111//7的二进制(不要告诉我你不知道为什么)右移两位后00000000 00000000 00000000 00000001//最左边用0填充转换十进制为:1
-7右移2位
11111111111111111111111111111001//-7的二进制右移两位后11111111111111111111111111111110//最左边用符号位填充转换十进制为:-2
-7无符号右移2位
11111111111111111111111111111001//-7的二进制右移两位后00111111111111111111111111111110//最左边用0填充转换十进制为:1073741822
7左移2位
00000000 00000000 00000000 00000111//7的二进制(不要告诉我你不知道为什么)右移两位后00000000 00000000 00000000 00011100//最右边用0填充转换十进制为:28
-7左移2位
11111111111111111111111111111001//-7的二进制右移两位后11111111111111111111111111100100//最左边用0填充转换十进制为:-28
总结:
右移时,位最左边用符号位填充(0为正,1为负),即负数用1填充,正数用0填充;无符号右移时,不管正负数都是用0填充;左移是最右边都是用0填充,不管正负数。
番外:
对二进制标示模糊的同学可以去了解一下原码,反码,补码基础知识。这样对你对以上二进制的表示理解有一定的帮助。当然,如果知道的话,代表同学你看到了最后,不妨污一下你的小手,在文章的左边给博主点个喜欢吧。
阅读全文
2 0
- Java 位运算符:左移 << 右移 >> 无符号右移 >>>
- 运算符 左移<<, 右移>>, 无符号右移>>>
- 关于java中位运算的左移、右移、无符号右移
- JAVA_SE系列:16.位运算符之左移、右移、无符号右移
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)
- java左移、右移、无符号右移
- java左移、右移、无符号右移、补码
- java左移、右移、无符号右移
- Java中“>> 右移”;“<< 左移”无符号右移>>>;“
- 有符号右移,无符号右移,左移
- 无符号右移运算符 (>>>)
- SSH整合技术
- Codeforces 859B Lazy Security Guard
- fatal error LNK1201: 写入程序数据库“.pdb”时出错
- Python中显示图片
- 项目使用dubbo 、zookeeper服务报 Could not initialize class org.I0Itec.zkclient.ZkClient
- Java 位运算符:左移 << 右移 >> 无符号右移 >>>
- HashMap源码剖析
- Maven中的dependencyManagement和dependencies区别
- 体系化认识RPC
- React Native学习二
- 分布式与集群有什么区别?
- 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
- 机器学习深入与强化--概念
- JS——面向对象基础