位运算,算术、逻辑运算详解-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

 

posted @ 2014-02-08 19:24  徐守威  阅读(473)  评论(0编辑  收藏  举报