Comsteed | 航纶

        天行健,君子以自强不息;地势坤,君子以厚德载物.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
一、“按位与”运算符(&)
1.运算规则
参加运算的两个数据,按二进位进行“与”运算,如果两个相应的二进位都为1,则该位的结果值为1,否则为0,即:
0&0=0,0&1=0,1&0=0,1&1=1.
2.用途
(1)清零
运算对象:原来的数中为1的位,新数中相应位为0。
(2)取一个数中某些指定位。
如想要取一个整数a(占2个字节)的低(高)字节,只需将a与八进制的377(177400)按位与即可。
(3)保留某一个数的某一位。
与一个数进行&运算,此数在该位取1。
二、 按位或运算符(|)
1.运算规则
参加运算的两个数据,按二进位进行“或”运算,如果两个相应的二进位都为0,则该位的结果值为0,否则为1,即:
0|0=0,0|1=1,1|0=1,1|1=1。
2.用途
对一个数据的某些位定值为1。

三、“异或”运算符(^)
也称XOR运算符。
1.运算规则
若参加运算的两个二进位同号,则结果为0(假);异号则为1(真),即:
0^0=0,0^1=1,1^0=1,1^1=0.
2.用途
(1)使特定位翻转
假设有01111010,想使其低4位翻转,可以将它与00001111进行^运算。
(2)与0相^,保留原值
(3)交换两个值,不用临时变量
假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:
a=a^b; b=b^a; a=a^b;

四、“取反”运算符(~)
1.运算规则
~是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变1,1变0。
2.用途
使一个整数a的最低位为0,可以用:a=a&~1;

五、 左移运算符(<<)
1.运算规则
用来将一个数的各二进位全部左移若干位,右补0,高位左移后溢出,舍弃不起作用。
2.用途
左移一位相当于乘以2

六、 右移运算符(>>)
1.运算规则
用来将一个数的各二进位全部右移若干位,移到右端的低位被舍弃,对无符号数,高位补0;
对有符号数,左边移入0(“逻辑右移”)或1(“算术右移”)
2.用途
右移一位相当于除以2

七、 位运算赋值运算符
位运算符与赋值运算符可以组成复合赋值运算符,如:
&=,|=,>>=,<<=,^=

八、不同长度的数据进行位运算
如果两个数据长度不同,进行位运算时(如:a&b,而a为long型,b为int型),系统会将二者按右端对齐。如果b为正数,则左侧16位补满0,若b为负数,左端应补满1,如果b为无符号整数型,则左端填满0。
posted on 2008-03-27 20:50  航纶  阅读(345)  评论(0编辑  收藏  举报