位运算符
来源:互联网 发布:中小企业融资数据统计 编辑:程序博客网 时间:2024/04/29 15:42
PC词典“位运算” C语言提供的位运算符:
& 按位与 按位或
∧ 按位异或 ~ 取反
左移 右移
(相当于Delphi 中
and 按位与 or 按位或
xor 按位异或 not 取反(按位取非)
shl 左移 shr 右移
)
说明:
1、 位运算符中除了~以外,均为二目运算符。
2、运算量只能是整型或字符型的数据,不能为实型数据。
一、“按位与”运算符:
规则:
参加运算的两个运算量,如果两个相应位都为1, 则该位结果值为1,否则为0。
例如: X=10001001 Y=11101110
X & Y=10001000
按位与的特殊用途:
1、清零。
方法: 与一个各位都为零的数值相与,结果为零。
2、取一个数x中某些指定位。
方法: 找一个数,此数的各位是这样取值的:对应x数要取各位,该数对应位为1,其余位为零。此数与x相就可以得到x中的某些位。
例:设X=10101110
(1)取X的低4位
(2)取X的bit2、bit4、bit6位
二、“按位或”运算符
规则:
参加运算的两个运算量,如果两个相应位中有个为1,则该位结果值为1,否则为0。
例如 X=10001001 Y=11101110
X Y=11101111
按位或的特殊用途: 常用来对一个数据的某些位置1。
方法:找一个数,此数的各位是这样取值的,对应x数要置1的位,该数对应位为1,其余位为零。此数与x相或就可使x中的某些位置1。
例:使 x=10100000 的低4位为1。
三、“异或”运算符
规则:参加运算的两个运算量,如果两个相应位为“异” (值不同),则该位结果值为1,否则为0。
例如 X=10001001 Y=11101110
X^Y=01100111
异或运算的应用:
(1)使特定位翻转: 找一个数,此数的各位是这样取值的:对应x数要转的各位,该数对应位为1,其余位为零。此数与x相或即可。
例:x=10101110, 使x低4位翻转
(2)与0相异或,保留原值。 例、
四、“取反”运算符 ~
对一个二进制数按位取反,即将0变为1,1变为0。
例: 0100001110010111 取反 1011110001101000
注意:~运算符的优先级别比算术运算符、关系运算符、逻辑运符和其它运算符都高。
例:使一个数a的最低位为零,可以表示成:
a & ~ 1
因为,~1=1111111111111110。
五、左移运算符《
将一个数的各二进制全部左移若干位。(左丢弃,右补0)
例:a=a2 将a的二进制数左移2位,右补0。
若左移时舍弃的高位不包含1,则数每左移一位,相当该数乘以2。
六、右移运算符》
将一个数的各二进制位全部右移若干位。(正数左补0/负数左补1,右丢弃)
例:a=a2 将a的二进制数右移2位。
将一操作数左移一位,相当于将其乘2。将一操作数右移一位,相当于将其除以2。
因此,可以用移位操作代替部分乘除操作,只要不产生溢出,这种代替是正确的。
(用CF标志判别无符号数运算是否溢出,CF=1,表示溢出。
用OF标志判别有符号数运算是否溢出,OF=1,表示溢出)。
七、位运算符与赋值运算符结合,组成展的赋值运算符。
&=, 例:a&=b 相当于 a=a&b
=, 例:a=b 相当于 a=ab
=, 例:a =b 相当于 a=ab
=, 例:a=b 相当于 a=ab
∧=, 例:a∧=b a = a∧b
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符与位运算
- sqlite位运算,sql位运算符
- 位运算符和位运算
- 位运算符和位运算
- 位运算、移位运算符
- Java位运算符
- 说说位运算符
- 位运算符
- Java 位运算符
- Java 位运算符
- Java 位运算符
- 五种常用RAD的测验比较
- 源程序格式书写规范
- Windows系统文件总结
- 用Delphi模拟QQ窗体伸缩功能
- P2P UDP与TCP的监听与发送 代码笔记
- 位运算符
- 通过调用API确定MEMO控件中的当前行和列
- 使用HOOK随心监视Windows
- 动态修改显示器分辨率
- 如何骗过防火墙
- A Gift For Your Birthday
- [转载]重构的原则
- 《给初学者的Windows Vista的补遗手册》之038
- Hibernate中几种数据类型的映射