javaSE基础_位运算及位移运算

来源:互联网 发布:淘宝网首页官网润滑油 编辑:程序博客网 时间:2024/05/08 11:58
源码:
public static void main(String[] args) {  //位运算  int a=~2;//按位取反:所有位都取反(包括符号位) 答案:-3  print("~2="+a);  int b=2&3;//按位与:两位都为1时,结果为1       答案:2  print("2&3="+b);  int c=2|3;//按位或 :  两位中只要有一个为1时,结果为1     答案:3  print("2|3="+c);  int d=3^2;//按位异或:两位中一个为1,一个为0,结果为1  答案:1  print("3^2="+d);  int e=~-5;//取反        答案:4  print("~-5="+e);  int f=-2|-3;  print("-2|-3="+f);    //移位运算  int m1=1>>2;//算术右移:符号位不变,高位用符号位补  print("1>>2="+m1);  int n1=1<<2;//算术左移:符号位不变,低位补0  print("1<<2="+n1);  int t1=-1>>2;  print("-1>>2="+t1);  int test01=-2<<3;  print("-2<<3="+test01);  int x1=3>>>1;//逻辑右移:低位溢出,高位补0  print("3>>>1="+x1);    }  public static void print(Object o){  System.out.println(o); }


运行结果:

~2=-3
2&3=2
2|3=3
3^2=1
~-5=4
-2|-3=-1
1>>2=0
1<<2=4
-1>>2=-1
-2<<3=-16

3>>>1=1


总结:
1.java在计算机的运算中,所有的运算都是以补码的形式进行运算的,特别注意负数的位运算
2.算术左移运算本质是:这个数乘以2的n次方,如3<<2=3*4
3.在补码运算得到结果后,如果最高位为1,此时必须转化为原码
原创粉丝点击