C、C++按位运算总结

最近经常碰到位运算,现对常见的位运算总结如下:

1、位移运算符

>>:称为按位右移运算符,将左边数的二进制按位向右移指定的位数。

<<:称为按位左移运算符,将左边数的二进制按位向左移指定的位数。

       位移运算符作用于其左侧的变量,其右侧的表达式的值是移动的位数,运算结果是移动后的变量结果。

例如:

       b=a<<2,a的值左移两位并赋值给b,而a本身的值不改变。

       向左移位在低位上补0,向右移位在高位上补0。右移时可以保持结果的符号位,也就是右移时,如果最高位为1,是符号位,则补1而不是补0

       右移运算符常常用来实现整数除法运算,左移运算符用来实现整数乘法运算。其中用来实现乘法和除法的因子必须是2的幂次。

 

2、位逻辑运算符

&:称为按位与运算符,两个位都为1时,结果为1,否则为0

|:称为按位或运算符,只要其中有一个为1,则结果为1,否则为0

^:按位异或运算符,两个位不相同时,结果为1,否则为0

~:按位补运算符,这是一个单目运算符,当为1时结果为0,当为0时结果为1

       以上属于按位逻辑运算符,只能用于整型表达式。通常用于对整型变量进行位的设置、清零、取反、以及对某些选定的位进行检测。

例如:

       设置某位为1,而其他位保持不变,可以使用按位逻辑或运算

              a = a | 0x08

       a00001000做或运算之后,a的第4位被设置为1,而其他位不变

又如:

       设置某位为0,而其他位保持不变,可以使用按位逻辑与运算

              a = a & 0xF7

       a11110111做与运算之后,a的第4位被设置为0,而其他位不变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值