按位与 按位或 按位异或 运算
2009-08-17 16:19:42| 分类: 计算机基础学习 | 标签: |字号大中小 订阅
(其实就想查一下“按位与 按位或 按位异或 运算”的意义,结果人家还附送了好多资料,我也就老实不客
气的照搬过来了)
摘自:http://zhidao.baidu.com/question/32807257.html
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应
的两个二进位均为 1 时,结果位才为 1 ,否则为 0。参与运算的数以补码方式出现。
例如:9&5 可写算式如下: 00001001 (9 的二进制补码)&00000101 (5 的二进制补码) 00000001 (1 的二
进制补码)可见 9&5=1。
按位与运算通常用来对某些位清 0 或保留某些位。例如把 a 的高八位清 0 , 保留低八位, 可作 a&255
运算 ( 255 的二进制数为 0000000011111111)。
应用:
a. 清零特定位 (mask 中特定位置 0,其它位为 1,s=s&mask)
b. 取某数中指定位 (mask 中特定位置 1,其它位为 0,s=s&mask)
2. 按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应
的二个二进位有一个为 1 时,结果位就为 1。参与运算的两个数均以补码出现。
例如:9|5 可写算式如下:
00001001|00000101
00001101 (十进制为 13)可见 9|5=13
应用:
常用来将源操作数某些位置 1,其它位不变。 (mask 中特定位置 1,其它位为 0 s=s|mask)
3. 按位异或运算 按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当
两对应的二进位相异时,结果为 1。参与运算数仍以补码出现,例如 9^5 可写成算式如下:
00001001^00000101 00001100 (十进制为 12)