位运算操作符

本文详细介绍了位运算操作符,包括按位与、按位或、按位异或的运算规则及应用场景,例如如何使用这些运算符进行位级操作,如清零、取特定的位、交换变量等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

位运算操作符

所有的位运算操作符都是按“二进制位补码”进行运算。

补码(有符号位):
  • 正数的原码、反码、补码都相同
  • 负数的补码=原码取反加1

1、按位与(&)

运算规则:0 & 0 = 0 ;0 & 1 = 0;1 & 0 = 0;1 & 1 = 1

     口诀:有“0”为“0”,全“1”为“1”

举例:

     3 & 5 =1

     00000000 00000000 00000000 00000011
&  00000000 00000000 00000000 00000101
——————————————————————
     00000000 00000000 00000000 00000001

应用:

 (1)清零特定位:如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。                      即:m & 0 = 0

(2)取一个数中指定位:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中                  的指定位。                                                                                                                                                                        即:m = 0100 1110,想取m的后四位,只需要 m & 0000 1111 = 0000 1110                                                    

 2、按位或( | )

 运算规则:0 | 0 = 0  ; 0 | 1 = 1  ; 1 | 0 = 1  ; 1 | 1 = 1

      口诀:有“1”为“1”,全“0”为“0”

举例:

      3 | 5 = 7

     00000000 00000000 00000000 00000011
|    00000000 00000000 00000000 00000101
——————————————————————

     00000000 00000000 00000000 00000111

应用:
(1)常用来对一个数据的某些位置1:找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。
     即:将m = 1010 0000的低4位置1 ,用 m | 0000 1111 = 1010 1111
3、按位异或( ^ )

运算规则:0 ^ 0 = 0  ; 0 ^ 1 = 1  ; 1 ^ 0 = 1  ; 1 ^ 1 = 0

      口诀:相同为“0”,不同为“1”

举例:

     3 ^ 5 = 

     00000000 00000000 00000000 00000011
^   00000000 00000000 00000000 00000101
——————————————————————

     00000000 00000000 00000000 00000110

应用:

 (1)不引入新变量交换两个数的值。

        即:  a = 3  —————— 00000000 00000000 00000000 00000011

                b = 3  —————— 00000000 00000000 00000000 00000101

                a = a ^ b—————00000000 00000000 00000000 00000110

                b = a ^ b—————00000000 00000000 00000000 00000011 —— 3 ——原 a

                a = a ^ b—————00000000 00000000 00000000 00000101 —— 5 ——原 b

已经交换了:a = 5 ,b = 3


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值