位运算符和位运算

位运算符和位运算

 

本节内容主要包括:

“按位与”运算符(&)

 按位或运算符(|)

“异或”运算符(^)

“取反”运算符(~)

 左移运算符(<<)

 右移运算符(>>)

 位运算赋值运算符

 不同长度的数据进行位运算

一、“按位与”运算符(&)

   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。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值