位运算,算术、逻辑运算详解-java篇
/**
* 功能:
* 位运算符,原码、反码、补码规则:
* 1.二进制的最高位是符号位:0表示正数,1表示负数
* 2.正数的原码、反码、补码都一样
* 3.负数的反码=它的原码符号位不变,其他位取反
* 4.负数的补码=它的反码+1
* 5.0的反码,补码都是0
* 6.java没有无符号数,换言之,java中的数都是有符号的
* 7.在计算机运算时候,都是以补码的方式来运算的
*
* 位运算规则:
* 按位与&:两位全为1,结果为1
* 按位或|:两位有一个为1,结果为1
* 按位异或^:两位一个为0,一个为1,结果为1
* 按位取反~:1->0,0->1
*
* 算术右移:地位溢出,符号位不变,并用符号位补溢出的高位
* 算术左移:符号位不变,低位补0
* 逻辑右移:低位溢出,高位补0
*
* 作者:徐守威
*/
package com.xushouwei;
public class T10 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=1>>2;
int b=-1>>2;
int c=1<<2;
int d=-1<<2;
int e=3>>>2;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println(~2);
System.out.println(2&3);
System.out.println(2|3);
System.out.println(~-5);
System.out.println(13&7);
System.out.println(5|4);
System.out.println(-3^3);
}
}
运行结果:
a=0
b=-1
c=4
d=-4
e=0
-3
2
3
4
5
5
-2