Java[探索](三)移位操作符
来源:互联网 发布:linux dump 内存 编辑:程序博客网 时间:2024/06/07 07:38
一 简介
先来回答几个问题:
1.移位操作符是什么?
2.移位操作符有哪些组成,各有什么特点?
第一个问题,移位操作符的的运算对象是二进制的“位”,它只可用于处理整数类型。
第二个问题,它由左移位操作符(<<)、右移位操作符(>>)、"无符号"右移位操作符(>>>)
左移位操作符(<<):如操作符右侧的数量是2,则将左边的操作数向左移动2位(低位补0)
“有符号”右移位操作符(>>):如操作符右侧的数量是2,则将左边的操作数向右移动2位(符号为正高位插入0,否则高位插入1)
“无符号”右移位操作符(>>>):如操作符右侧的数量是2,则将左边的操作数向右移动2位(无论符号正负高位都插入0)
二 下面来一个Demo
package thired;public class DemoOne {public static void main(String[] args) {// TODO Auto-generated method stubint num1=5,num2=2,num3=-5;//左移位操作符System.out.println("左移位操作符:"+(num1<<num2));//“有符号”右移位操作符System.out.println("右移位操作符(正):"+(num1>>num2));System.out.println("右移位操作符(负):"+(num3>>num2));//“无符号”右移位操作符System.out.println("“无符号”右移位操作符(正):"+(num1>>>num2));System.out.println("“无符号”右移位操作符(负):"+(num3>>>num1));}}
运行结果
左移位操作符:20右移位操作符(正):1右移位操作符(负):-2“无符号”右移位操作符(正):1“无符号”右移位操作符(负):134217727
三 注意
1.对char、byte、short进行移位操作时会将char、byte、short转换为int,得到的结果也是int
2.对long进行移位操作时位是会转换成long,得到的结果也是long
1.移位可与等号(<<= 、>>=、>>>=)组合使用,如果对byte和short进行移位操作可能会不正确,因为byte和short会先转换成int.看看代码
package thired;public class DemoOne {public static void main(String[] args) {// TODO Auto-generated method stubint num1=5,num2=2,num3=-5;//左移位操作符System.out.println("左移位操作符:"+(num1<<num2));//“有符号”右移位操作符System.out.println("右移位操作符(正):"+(num1>>num2));System.out.println("右移位操作符(负):"+(num3>>num2));//“无符号”右移位操作符System.out.println("“无符号”右移位操作符(正):"+(num1>>>num2));System.out.println("“无符号”右移位操作符(负):"+(num3>>>num1));//byte运算不正确byte b=-1;System.out.println("byte运算1:"+(b>>>=2));System.out.println("byte运算2:"+(b>>>2));}}
运行结果:左移位操作符:20右移位操作符(正):1右移位操作符(负):-2“无符号”右移位操作符(正):1“无符号”右移位操作符(负):134217727byte运算1:-1byte运算2:1073741823再来看两个方法 Integer.toBinaryString,用字符串形式输出二进制数。
阅读全文
0 0
- Java[探索](三)移位操作符
- Java移位操作符
- java移位操作符
- Java移位操作符
- java移位操作符
- Java移位操作符
- Java | 移位操作符
- Java中的移位操作符
- Java中的移位操作符
- Java 移位操作符注意
- java移位操作符详解
- >>>,<< ,<< java中的三种移位运算符
- java三种移位运算符
- Java三种移位运算符
- Thinking in Java 之移位操作符
- java 移位操作符int类型
- Java 移位操作>>,<<,>>> 位逻辑运算符 &, |,~,^
- Java中的移位操作
- idea 常用代码提示设置
- avalon中的模板绑定(ms-include)
- 2017.7.6
- Nod-最长公共子序列Lcs(动态规划)
- oracle数据库导入导出命令
- Java[探索](三)移位操作符
- REST简介
- RxJava 2.x 教程(完结版)
- RAC 的一些概念性和原理性的知识
- vue.1的各种自带过滤器
- nodejs--将浏览器默认打开的文件变成下载
- to_date的用法
- celery supdervisor redis使用实例
- HTML块内元素与内联元素