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

原文地址:https://www.cnblogs.com/gudu1/p/6445744.html