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 可以是一个类,可以直接引用.比如 ...
随机推荐
- Oracle安装部署之 6节点11g cluster环境搭建
**********************集群规划*************************************** --配置主机,共需要8台主机,其中6台做grid集群,1台作为存储服 ...
- rbac - 初识
一.rbac 权限组件 1 项目与应用 一个项目,可以有多个应用 一个应用,可以在多个项目下 前提:应用是组件!! 2 什么是权限? 一个包含正则表达式url就是一个权限 who what how - ...
- 过山车---hdu2063(最大匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063最大匹配模板题: #include <iostream> #include <c ...
- sql server 驱动程序在 \Device\RaidPort0 上检测到控制器错误。
sql server 驱动程序在 \Device\RaidPort0 上检测到控制器错误. 错误情况,如下图: 原因分析:硬盘故障 解决办法:进行迁移
- JAVA问题定位跟踪技术
常用的JAVA调试技巧: 线程堆栈解读 性能瓶颈分析 远程调试 内存泄露检测 常用工具集: proc工具集 系统跟踪命令truss/strace Core文件管理coreadm 进程状态监控prsta ...
- ROS 命令学习记录
#catkin_init_workspace //just get CMakeList.txt #catkin_make //增加了信文件夹 build和devel #Catkin_creat_pk ...
- Cocos2d-JS实现的打飞机
一.前言 今天我们来讲一个最最最常见的一个小游戏--打飞机!是的,打飞机!还记得小时候在玩儿的雷电,应该是打飞机最早的样子了吧.直到现在,也有微信打飞机,全民飞机大战,全民打飞机等游戏的出现,这些游戏 ...
- Jquery 简明介绍
http://www.cnblogs.com/luotianshuai/p/5196997.html http://www.cnblogs.com/liujianzuo888/articles/568 ...
- 自定义centos7 yum仓库
将安装光盘插入 mkdir /newyum umount /dev/sr0 mount /dev/sr0 /media cp -rf /media/Packages /newyum #将镜像中的rpm ...
- C语言中exit函数的使用
exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束 return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一 ...