JAVA中的>>和>>>号以及<<号的作用
public static void main(String[] args) {
//右移2位,输出结果为2。二进制1000右移2位变为0010
System.out.println(8>>2);
//等同于 8除以2的3次方,即8/Math.pow(2,3)。输出为1
System.out.println(8>>>3);
//左移2位,输出结果为8。二进制0010左移2位变为1000
System.out.println(2<<2);
//语法错误,不支持
System.out.println(8<<<3);
}
1、 >>带符号右移。正数右移高位补0,负数右移高位补1
快速记忆:相当于除以一个值,正数除完后最小值为0,负数除完最大值为-1
2、 >>>无符号右移。无论是正数还是负数,高位通通补0
快速记忆:正数相当于除以一个值,最小值为0
负数比较麻烦,暂时没有找到快速记忆方法,有同学知道的可以告知
3、 <<表示左移,不分正负数,低位补0
快速记忆:不管正负数,相当于乘以一个数
public static void main(String[] args) {
// >>带符号右移。正数右移高位补0,负数右移高位补1
System.out.println("====================== >>带符号右移 =========================================");
System.out.println("----------------正数举例----------------------");
// 8的2进制表示为1000
System.out.println(Integer.toBinaryString(8));
// 输出向右移动两位
System.out.println(8>>2);
// 输出向右移动两位的二进制0010 即:十进制的2
System.out.println(Integer.toBinaryString(8>>2));
System.out.println("-----------------正数超出位数举例---------------------");
System.out.println(Integer.toBinaryString(8));
System.out.println(8>>6);
System.out.println(Integer.toBinaryString(8>>6));
System.out.println("----------------负数举例----------------------");
System.out.println(Integer.toBinaryString(-8));
System.out.println(-8>>2);
System.out.println(Integer.toBinaryString(-8>>2));
System.out.println("-----------------负数超出位数举例---------------------");
System.out.println(Integer.toBinaryString(-8));
System.out.println(-8>>6);
System.out.println(Integer.toBinaryString(-8>>6));
// >>>无符号右移。无论是正数还是负数,高位通通补0
System.out.println("====================== >>>无符号右移 =========================================");
System.out.println("----------------正数举例----------------------");
System.out.println(Integer.toBinaryString(8));
System.out.println(8>>>2);
System.out.println(Integer.toBinaryString(8>>>2));
System.out.println("-----------------正数超出位数举例---------------------");
System.out.println(Integer.toBinaryString(8));
System.out.println(8>>>6);
System.out.println(Integer.toBinaryString(8>>>6));
System.out.println("----------------负数举例----------------------");
System.out.println(Integer.toBinaryString(-8));
System.out.println(-8>>>2);
System.out.println(Integer.toBinaryString(-8>>>2));
System.out.println("-----------------负数超出位数举例---------------------");
System.out.println(Integer.toBinaryString(-8));
System.out.println(-8>>>6);
System.out.println(Integer.toBinaryString(-8>>>6));
// <<表示左移,不分正负数,低位补0
System.out.println("====================== <<左移 =========================================");
System.out.println("----------------正数举例----------------------");
System.out.println(Integer.toBinaryString(8));
System.out.println(8<<2);
System.out.println(Integer.toBinaryString(8<<2));
System.out.println("----------------负数举例----------------------");
System.out.println(Integer.toBinaryString(-8));
System.out.println(-8<<2);
System.out.println(Integer.toBinaryString(-8<<2));
}
JAVA中的>>和>>>号以及<<号的作用的更多相关文章
- Java中@Deprecated、@SupressWarning、@Override的作用
Annotation注解在 Java 中有着很广泛的,他是做为一种标识 为javac所识别.每一个注解 都对应这一个Java类 在java.lang包中 有三个注解 分别是 Deprecated ...
- Java中Class和单例类的作用与类成员的理解
Java中Class类的作用与深入理解 在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识.这个信息跟踪着每个对象所属的类.JVM利用运行时信息选择相应的方法执行.而保存 ...
- Java中的package和Import关键字的作用
一.package关键的作用 1.包的概念 package翻译为包,本质上就是一个文件夹,通过包组织项目结构的过程,就是通过包对应的文件夹管理.java和.class文件的过程. 2.包的作用 通过包 ...
- java中 static,final,transient,volatile关键字的作用
static 和final static 静态修饰关键字,可以修饰 变量,程序块,类的方法: 当你定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而 ...
- JAVA中String类的intern()方法的作用
一般我们变成很少使用到 intern这个方法,今天我就来解释一下这个方法是干什么的,做什么用的 首先请大家看一个例子: public static void main(String[] args) t ...
- Java中的static关键字和new关键字作用介绍
一.static关键字的作用 1.可以用于修改类的成员变量.代码块和类 通过static可以将类的成员声明为静态成员,静态的成员归属于整个类,而不是属于某个对象.无论通过类还是对象访问静态成员,操作的 ...
- Java中的super关键字和this关键字作用介绍
一.super关键字的作用 1.子类在构造方法中显示调用父类构造方法 super可以在子类的构造方法中显示调用父类的构造方法:并且这行代码必须出现在子类构造方法的第一行.原因:因为父类构造方法没有执行 ...
- java中static关键字的作用
java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...
- python中print()函数的“,”与java中System.out.print()函数中的“+”
python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能. python中: print("hello,world!") 输出 ...
- java中的单引号和双引号
1.单引号引的数据 是char类型的,双引号引的数据 是String类型的:单引号只能引一个字符,而双引号可以引0个及其以上.char只是一个基本类型,而String 可以是一个类,可以直接引用.比如 ...
随机推荐
- 用 node.js 的 hexo 框架搭建一个支持 markdown 的静态博客系统
1,Hexo如何在线可视化写博客: 可以试试这款插件 hexo-admin. 2,马克飞象: 一个非常好的 markdown 编辑器. 3,Hexo博客文章设置密码的方法: 首先,在Hexo中 ...
- [华为]输入n个整数,输出其中最小的k个
链接:https://www.nowcoder.com/questionTerminal/69ef2267aafd4d52b250a272fd27052c来源:牛客网 输入n个整数,输出其中最小的k个 ...
- 超全超详细的 ADB 用法大全
原文地址:原文地址 基本用法 命令语法 为命令指定目标设备 启动/停止 查看 adb 版本 以 root 权限运行 adbd 指定 adb server 的网络端口 设备连接管理 查询已连接设备/模拟 ...
- 史上最全的MonkeyRunner自动化测试从入门到精通(2)
原文地址https://blog.csdn.net/liu_jing_hui/article/details/60955696 最基本脚本功能开始编写 (1)Monkeyrunner和Monkey的区 ...
- 转载Liferay PortletPreference store()方法研究
我们对于PortletPreference 的store()用的非常广泛,很多情况下,我们一般对其进行一些设定,然后最后调用store()存储之,类似以下代码: PortletPreferences ...
- python的构建工具setup.py
一.构建工具setup.py的应用场景 在安装python的相关模块和库时,我们一般使用“pip install 模块名”或者“python setup.py install”,前者是在线安装,会安 ...
- 如何有规律的备份 WordPress 博客(转)
转自:http://blog.wpjam.com/m/backup-your-blog-regularly/ 我们都知道备份 WordPress 博客应该是规律性的操作,但是事实上往往我们都会因为 ...
- python uwsgi报错epoll_ctl(): Bad file descriptor
今天安装了uwsgi+supervisord+nginx,一直访问不了 直接启动uwsgi使用nginx访问,查看有大量报错:epoll_ctl(): Bad file descriptor [cor ...
- Python的星号(*)和双星号(**)用法
①引言 在Python中,星号除了用于乘法数值运算和幂运算外,还有一种特殊的用法是在变量前加单个星号或两个星号,实现多参数的传人或变量的拆解. ②什么是星号变量 最初,星号变量是用在函数的参数传递上的 ...
- linux 常用命令总结(二)
1. linux下以指定的编码打开文件:LANG=zh_CN vi fileName 2. 查看系统内存使用,可以使用free -m 或 top 3. 使用env查看所有环境变量 4. df –h 查 ...