C++位运算

本文探讨了C++中的位运算,包括位反运算符`~`用于翻转二进制位,位与运算符`&`用于条件选择,位或运算符`|`用于设置位,异或运算符`^`用于切换位,以及左移`<<`和右移`>>`运算符。这些运算常用于处理二进制数据,如开关状态的控制。
摘要由CSDN通过智能技术生成
  • 一个二进制位可记录某种对象的开关状态

  • 位反运算符"~"

 ~ 0101 0101
 = 1010 1010
unsigned char s=0x55; 	s=~s

在实际应用中,位反运算可以将操作数中所有状态位同时进行反制。
例如,一个无符号字符型变量s,用s来记录八盏电灯的开关状态,对变量s进行位反运算,就可以将八盏电灯中亮着的电灯关闭,不亮的灯开启。C++原程序中没有办法书写二进制,通常我们将二进制转化为十六进制

  • 位与运算符"&"
         0011 0011
      &  0000 1111
      =  0000 0011

位与运算符是双目运算符,参与运算的两个数都为1则结果为1,否则结果为0

unsigned char s;	s & 0x2	0000 0010

	   bbbb bbbb			操作数s,b表示0或1
	&  0000 0010			检测倒数第二位状态的掩码
							运算结果:保留倒数第二位,其他位变成0
	=  0000 00b0			如果该结果等于0,则倒数第二位的状态为0
							如果该结果不等于0,则倒数第二位的状态为1				
  • 位或运算符 “|”
     0011 0011
   | 0000 1111
   = 0011 1111

位或运算符也是一个双目运算符࿰

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值