java学习笔记(一)----位运算符与逻辑运算符

来源:互联网 发布:淘宝b2c还是c2c 编辑:程序博客网 时间:2024/05/24 01:46
一、位运算符
&是按位与运算符,它运算规则是“两位都是1结果取1,其他情况都取0”。
例如 0&0=0    0&1=0    1&0=0    1&1=1
特殊作用
    1)清零 X&0000 0000 = 0000 0000
    2)取指定位 对应要取的位的值为1 其余为0   例如 取前4位:  1010 1010 & 1111 0000 = 1010 0000
|是按位或运算符,它的运算规则是“两位都是0结果取0,其他情况都取1”。
例如 0|0=0    0|1=1    1|0=1    1|1=1
特殊作用
    置1 对应要置1的位的值为1 其余为0  例如 置后4位为1: 1010 0000 | 0000 1111 = 1010 1111
^是异或运算符,它的运算规则是“两位相同为0,相异为1”。
例如 0^0=0    0^1=1    1^0=1    1^1=0
特殊作用
    1)按位取反   对应要取反的位的值为1 其余为0  例如 对后四位取反:1010 1010 ^ 0000 1111 = 1010 0101
    2)保留原值   对应位的值全位0 例如  1010 1010 ^ 0000 0000 = 1010 1010
~是取反运算符,它的运算规则是“按位取反”  
例如 ~0=1    ~1=0
特殊作用
    置最后一位为0: 1111 1001 & ~1 = 1111 1000
<<是左移运算符,将运算对象的一个二进制位全部左移若干位,左边的二进制位舍弃,右边的二进制位补0,若左移时高位不包含1,则每左移一位,相当于该数乘以2
例如 1010 1111 << 2 = 1011 1100
>>是右移意运算符,将运算对象的一个二进制位全部右移若干位,正数左补0,负数左补1,右边的二进制位舍弃,右移一位相当于该数除以2
例如 1010 1111 >> 2 = 1011 1100
>>>是无符号右移运算符,将运算对象的一个二进制位全部右移若干位,左边补0,右边的二进制位舍弃

对于不同长度的数据进行位运算系统会将两个数的右端对其,然后进行位运算。左边不足的位按照下面的规则进行补足:
1)如果数据为正数,左边补0
2)如果数据为负数,左边补1
3)如果数据为无符号数,左边补0

二、逻辑运算符
  < 小于
  > 大于
  <= 小于或等于
  >= 大于或等于
  == 等于
  != 不等于 
  && 而且 (And)
  and 而且 (And)
  || 或者 (Or)
  or 或者 (Or)
  xor 异或 (Xor)
  ! 非 (Not)
  对于and or xor 的比较
  .............And.......Or.........Xor
  0......0.....0.........0...........0
  1......0.....0.........1...........1
  0......1.....0.........1...........1
  1......1.....1.........1...........0
  简单的说
  And:同为真时为真
  Or:同为假时为假
  Xor:相同为假


原创粉丝点击