位运算

来源:互联网 发布:怎么绑定淘宝银行卡 编辑:程序博客网 时间:2024/05/22 07:15
public class Bit {public static void main(String[] args) {/* *  左移运算符(<<)的运算规则为:按二进制形式将数字左移相应位数,高位舍弃,低位补零。 *  带符号右移运算符(>>)的运算规则为:按二进制形式将数字右移相应位数,低位舍弃,高位正数补零,负数补1。 *  无符号右移运算符(>>>)的运算规则为:按二进制形式将数字右移相应位数,低位舍弃,高位补零。 */int a = -8;System.out.println(Integer.toBinaryString(-8));System.out.println(Integer.toHexString(-8));//fffffff8System.out.println(Integer.toHexString(-5));//fffffffbSystem.out.println(a << 2);System.out.println(a >> 2);System.out.println(a >>> 2);/* * 移位运算其实可以看做对类型的位数取余后的移位。 * java中int是32位,long是64位。比如对int型的数字做左移40位的操作, * 与左移40%32=8位效果是相同的。若对int型做移位32*n的运算,则相当于什么都没做。 * 而对于byte、char以及short,在做移位运算时会自动类型转换成int型。 */byte b = 8;short s = 8;char c = 8;int i = 8;long l = 8;System.out.println(b >> 32);System.out.println(s >> 32);System.out.println(c >> 32);System.out.println(i >> 32);System.out.println(l >> 32);int x = 1;System.out.println(~x);//-2method();}static void method() {try {System.out.println("Hello");System.exit(0);} finally {System.out.println("good-bye");}}}

0 0
原创粉丝点击