位运算知识点

 

运算符含义运算符含义
&按位与~取反
|按位或<<左移
^按位异或>>右移

运算量只能是整型或字符型的数据,不能为实型数据。

 

&

如果参加&运算的是负数,则以补码的形式表示为二进制数,然后按位进行“与”运算。

用途:清零、取一个数中某些指定位

 

|

用途:用来对一个数据的某些位定值为1

 

^

异或(XOR),判断两个相应的位值是否为“异”,相异为1.

用途:使特定位翻转(要使哪几位翻转,将与其相异或的数的哪几位置1)

            与0相异或,保留原值

            交换两个值,不用临时变量

a = a^b;

b = b^a;

a = a^b;

~

使某个整数的最低一位为0(a = a&~1)(~1  最后一位为0,其余都为1)

~比&优先级高

 

<<

左移比乘法运算快得多,有些C编译程序自动将乘2的运算用左移一位来实现。

 

>>

移到右端的低位被舍弃,

对无符号数,高位补0;

对于有符号数,如果原来符号高位为0(该数为正),则左边也植入0;如果符号位原来为1,则左边移入0还是1,取决于所用的计算机系统。移入0的称为“逻辑右移”,即简单右移,移入1的称为“算术右移”。

 

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

a&=b    a= a&b

 

不同长度的数据进行位运算,系统会将二者按右端对齐。

eg. a&b   

如果b是无符号整型,则左侧填满0

若b为正数,则左侧填满0,若b为负数,左侧填满1

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安安csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值