1、Java 认证考试位操作符总结以下是 java 位操作符的小总结,具体如下:二进制负数以它正值的补码形式表达补码:反码+1 等于补码比如:System.out.println(Integer.toBinaryString(-5);打印:1111 1111 1111 1111 1111 1111 1111 1011 不用想了肯定是 32 位过程是这样的:一个负数,比如-5,它的二进制在 java 里面是这样表示1000 0000 0000 0000 0000 0000 0000 0101它的正值是:0000 0000 0000 0000 0000 0000 0000 0101反码是:1111 1
2、111 1111 1111 1111 1111 1111 1010再加上 1 是:1111 1111 1111 1111 1111 1111 1111 1011即得到打印的内容java 操作符,对每个二进制位的内容求反,即 1 变成 0,0 变成 1测试负数:int a = -5;/101;System.out.println(a);打印:4过程是这样的,首先表示出来这个负数1111 1111 1111 1111 1111 1111 1111 1011(上面已经提到为什么这样表示)各位取反得到0000 0000 0000 0000 0000 0000 0000 0100转为 10 进制得到 4
3、测试正数:int a = 5;/101;System.out.println(a);打印:-6首先表示出来这个正数:0000 0000 0000 0000 0000 0000 0000 0101各位取反得到:1111 1111 1111 1111 1111 1111 1111 1010这个代表的就是-6 了,至于为什么看最上面java 打印:4过程:5 表示成:0000 0000 0000 0000 0000 0000 0000 01016 表示成:0000 0000 0000 0000 0000 0000 0000 0110进行 打印:7过程:5 表示成:0000 0000 0000 000
4、0 0000 0000 0000 01016 表示成:0000 0000 0000 0000 0000 0000 0000 0110进行 | :0000 0000 0000 0000 0000 0000 0000 0111得到:7java 操作符 当对应二进制位值相同,该位为 0 否则为 1测试:System.out.println(56);打印:3过程:5 表示成:0000 0000 0000 0000 0000 0000 0000 01016 表示成:0000 0000 0000 0000 0000 0000 0000 0110进行 :0000 0000 0000 0000 0000 00
5、00 0000 0011得到:3java 操作符,左边移动,右面填充 0测试:System.out.println(51);打印:105 表示成:0000 0000 0000 0000 0000 0000 0000 0101进行 1 操作:0000 0000 0000 0000 0000 0000 0000 1010java 操作符,左边移动,右面填充 0测试:System.out.println(51);打印:25 表示成:0000 0000 0000 0000 0000 0000 0000 0101进行 1 操作:0000 0000 0000 0000 0000 0000 0000 0010左移动一位相当乘以 2 右移动一位相当除以 2