java中关于<<,>>,>>>
2016-11-15 13:43
176 查看
1,在计算机中,数据都是以补码的形式存在的,
2,正数二进制数据的原码、反码、补码都是相同的,
如 5,java中,int占四个字节,所以它的原码、反码补码均为00000000 00000000
00000000 00000101,首位0表示正数
举个例子,14的几个操作,
14>>2;分析14的原码、反码、补码为:00000000 00000000 00000000 00001110;
右移2位,高位补充符号位,此处符号位为0;所以结果为3
14>>>2;与上一个一样,只不过高位补充的是0,在这里结果也为3
14<<2:左移2位,低位补充0,可以得到结果为56
3,负数二进制数的原码、反码、补码基本不相同(-8的原码和补码是相同的)
如-5,原码为10000000 00000000 00000000 00000101,反码 11111111 11111111
11111111 11111010,符号位不变,补码为11111111 11111111 11111111 11111011,在
反码的基础上加1。
4、几个基本的操作,-14的原码为100000000 00000000 00000000 00001110,反码为
11111111 11111111 11111111 11110001,补码为11111111 11111111 11111111
11110010,
-14<<2;低位补充0,补码为11111111 11111111 11111111 11000100;所以反码为
11111111 11111111 11111111 1100011,原码为10000000 00000000 00000000
0011100,也就是数字-56;
-14>>2;高位补充的是符号位,补码为11111111 11111111 11111111 11111100;
反码为11111111 11111111 11111111 11111011,原码为10000000 00000000 00000000
00000100;所以结果为-4;
-14>>>2,高位补充的是0,补码为00111111 11111111 11111111 11111100;这是一个正
数,反码,补码,原码都是相同的,也就是数字1073741820。
2,正数二进制数据的原码、反码、补码都是相同的,
如 5,java中,int占四个字节,所以它的原码、反码补码均为00000000 00000000
00000000 00000101,首位0表示正数
举个例子,14的几个操作,
14>>2;分析14的原码、反码、补码为:00000000 00000000 00000000 00001110;
右移2位,高位补充符号位,此处符号位为0;所以结果为3
14>>>2;与上一个一样,只不过高位补充的是0,在这里结果也为3
14<<2:左移2位,低位补充0,可以得到结果为56
3,负数二进制数的原码、反码、补码基本不相同(-8的原码和补码是相同的)
如-5,原码为10000000 00000000 00000000 00000101,反码 11111111 11111111
11111111 11111010,符号位不变,补码为11111111 11111111 11111111 11111011,在
反码的基础上加1。
4、几个基本的操作,-14的原码为100000000 00000000 00000000 00001110,反码为
11111111 11111111 11111111 11110001,补码为11111111 11111111 11111111
11110010,
-14<<2;低位补充0,补码为11111111 11111111 11111111 11000100;所以反码为
11111111 11111111 11111111 1100011,原码为10000000 00000000 00000000
0011100,也就是数字-56;
-14>>2;高位补充的是符号位,补码为11111111 11111111 11111111 11111100;
反码为11111111 11111111 11111111 11111011,原码为10000000 00000000 00000000
00000100;所以结果为-4;
-14>>>2,高位补充的是0,补码为00111111 11111111 11111111 11111100;这是一个正
数,反码,补码,原码都是相同的,也就是数字1073741820。
相关文章推荐
- <<Think in Java 4 >>中关于使用XOM操作xml文件
- 关于java线程池<三>
- 关于java的移位运算符<<,>>,>>>
- java工具箱---最新更新(关于<a:support />放在某个标签中不可用)
- [置顶] 【Java】关于Map解析List<Map<String, String>>的心得
- 关于java中<T>问题
- 关于java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.Att
- 关于JAVA 位运算“<<” ">>"
- Java关于List<String> 进行排序,重写Comparator()方法
- 关于java的位运算(<<、>>、<<<、&、|、^、~)
- 关于java中<T>问题
- java redis demo关于List<Integer>,List<String>
- 关于GSON中 java.lang.reflect.Type type = new TypeToken<List<Object>>(){}.getType();
- 关于java线程池<一>
- 关于JAVA中JNI的应用 <转>
- <学习笔记>关于Hash集合以及Java中的内存泄漏
- 黑马程序员_关于黑马java班入学测试技术分享<前5题>(一)
- 关于对 java 泛型中T extendscompareable<? super T>理解
- 关于Java异常10件事儿<下>20170511
- 纠错 : 关于书籍<java核心技术 卷I 基础知识 第八版> 第五章 Employee/Manager 两个例子