JAVA操作符位移详解
2012-07-09 00:36
246 查看
package util; public class BitOperator { public static void main(String[] args) { System.out.println("\n按位左移"); output("123", 123); output("123 << 32", 123 << 32); System.out.println("\n按位有符号右移"); output("123", 123); output("123 >> 2", 123 >> 2); System.out.println("\n按位有符号右移,右移时高位补充符号位"); output("-123", -123); output("-123 >> 2", -123 >> 2); System.out.println("\n按位无符号右移"); output("123", 123); output("123 >>> 1", 123 >>> 1); System.out.println("\n按位无符号右移,右移时高位补 0"); output("-123", -123); output("-123 >>> 2", -123 >>> 2); } private static void output(String prompt, int result) { System.out.printf("%10s = %-10d %s%n", prompt, result, toBit(result)); } public static String toBit(int num) { char[] chs = new char[39]; for (int i = 0, k = 0; i < Integer.SIZE; i++) { chs[k++] = (char)('0'+ ((num >>> Integer.SIZE - i - 1) & 1)); if ((i & 3) == 3 && k < chs.length) { chs[k++] = ' '; } } return new String(chs); } } /* 按位左移 123 = 123 0000 0000 0000 0000 0000 0000 0111 1011 123 << 2 = 492 0000 0000 0000 0000 0000 0001 1110 1100 按位有符号右移 123 = 123 0000 0000 0000 0000 0000 0000 0111 1011 123 >> 2 = 30 0000 0000 0000 0000 0000 0000 0001 1110 按位有符号右移,右移时高位补充符号位 -123 = -123 1111 1111 1111 1111 1111 1111 1000 0101 -123 >> 2 = -31 1111 1111 1111 1111 1111 1111 1110 0001 按位无符号右移 123 = 123 0000 0000 0000 0000 0000 0000 0111 1011 123 >>> 2 = 30 0000 0000 0000 0000 0000 0000 0001 1110 按位无符号右移,右移时高位补 0 -123 = -123 1111 1111 1111 1111 1111 1111 1000 0101 -123 >>> 2 = 1073741793 0011 1111 1111 1111 1111 1111 1110 0001 */
相关文章推荐
- java java.lang.Long详解之三 大显神通的位移运算
- 第三节:带你详解Java的操作符,控制流程以及数组
- java java.lang.Long详解之三 大显神通的位移运算
- java java.lang.Long详解之三 大显神通的位移运算(转)
- java移位操作符详解
- Java一元操作符++详解
- Java开发中的23种设计模式详解(推荐)
- Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
- java实例方法被覆盖,静态方法被隐藏Explain(详解)
- Java Reflection (JAVA反射)详解 (二)
- java-synchronized 嵌套使用代码详解
- .java文件和类关系的详解,含示例代码
- Java本地调用JNI使用规范详解
- Java开发中的23种设计模式详解及代码和图解
- java 中 date类型详解
- Java+大数据开发——HDFS详解
- JAVA的反射机制详解
- java中静态代码块的用法 static用法详解
- Java 阻塞队列详解及简单使用
- Java HashMap源代码详解