3.1 操作符

目录     2.5 static 关键字<<  >>3.2 布尔值

1.移位操作符:
  左操作数的值将移动由右操作数指定的位数。两个操作数必须是整型类型。

  左移:<<
  移出左边界的几位丢弃,右边几个空位用0补齐。
  例如:5<<2 = 20(5:101,20:10100)
         -5<<2=-20 (-5:1111 1011,-20:1110 1100)

  右移:>>
  左边移入新位时,有两种方案,一是逻辑移位,左边移入位用0填充;另一种是算术移位,左边移入的新位由原来的符号位决定。
  例如:5>>2 = 1 (5:101)
         -5>>2= -2(-5:1111 1011,-2:1111 1110)
       
2.位操作符:
  1) &:AND,两个位都是1,结果为1,否则结果为0。
  2) |:OR,两个都是0,结果为0,否则结果为1。
  3) ^:XOR,两个位不同,结果为1。两个位相同,结果为0。
  例如:      00101110      00101110       00101110
             & 01011011    | 01011011    ^ 01011011
                ----------      -----------       -----------
                00001010      01111111        01110101

3.位的操作:
  把指定位置1:value |= 1<<bit
  把指定位清0:value &= ~(1<<bit)
  测试指定位 :value & 1 << bit  (如果该为已被置1,则表达式的结果为非零值)

4.赋值:
  1.=
    结合性是从右到左:
    a = x = y +3;
    a = ( x = y +3 )

5.单目操作符:
  (1) ++ , --
      注意是前缀还是后缀。
      例如, int a,b,c,d;
                a = b = 10;   a和b得到10;
                c = ++a;      a增加至11,c得到的值为11
                d = b++;      b增加至11,但d得到的值任为10.

6.逗号操作符:
   expression1,expression2,...,expressionN
   这些表达式自左向右逐个进行求值,整个逗号表达式的值就是最后那个表达式的值。

posted @ 2012-02-08 06:36  遥远的进  阅读(142)  评论(0编辑  收藏  举报