java位移运算符|And&,操作二进制

在java中 逻辑运算符有四种:& , |, &&, ||

  &: 如果第一个条件是fasle,还会判断第二个条件,只要有一个条件不满足,结果就返回false;

 &&:如果第一个条件就不满足,则直接返回false,不会去判断第二个条件;  

  |和||跟上面是一样的意思

  

  

Java中基本类型:

    int数据类型:byte(8bit ,-128~127) short(16 bit) int(32 bit) long(64 bit)

    float数据类型: 单精度(32 bit float)、双精度(64 bit double)

    boolean类型: true false

    char数据类型:unicode字符(16位)

对应的类类型:

    Integer、Float、Boolean、Character、Double、Short、Byte、Long

二进制数据如果第一位是1,则是负数;第一位是0,则是正数

举个例子(-1和255)00000001

-1转换成二进制(byte类型):11111111

1转换成二进制(int类型):00000000-00000000-00000000-00000001

转换成二进制要先取反,然后+1,(11111111-11111111-11111111-11111111)

如果把负数的二进制转换成十进制数据:首先要-1,然后取反 -(00000000-00000000-00000000-00000001),结果就是-1;

255转换成二进制(int类型):00000000-00000000-00000000-11111111

正数的二进制转换成十进制则不用取反:1*(2*1)+1*(2*2)+1*(2*2*2)....... = 255;

System.out.println("a>>b = "+3>>1);

System.out.println("a<<b = "+3<<1);

System.out.println("a&b = "+3&1);

System.out.println("a|b = "+3|1);

System.out.println("a^b = "+a^b);

a = 0011

b = 0001

a = 3

b = 1

运行结果是:

a>>b = 1  :0001

a<<b = 6  :0111

a & b = 1  :0001

a | b = 3  :0011

a ^ b = 2 :0010