位运算(1)

概念

■位运算是指按二进制位进行的运算。因为在系统软件中,常要处理二进制位的问题。

■例如:将一个存储单元中的各二进制位左移或右移位,两个数按位相加等。

■C语言提供位运算的功能,与其他高级语言(如PASCAL)相比,具有很大的优越性。

位运算符和位运算

(1)位运算符中除~以外,均为二目(元)运算符,即要求两侧各有一个运算量。

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

“按位与”运算符(&)

.含义:参加运算的两个数据,按二进制。位进行“与”运算。

如果两个相应的二进制位都为|,则该位的结果值为| ; 否则为0。

.例如:

0&0= 0,0&1= 0

1 &0=0,1&1=1

“按位与”运算符(&)

■注意:

3&5并不等于8,应该是按位与运算:

00000011 (3)& 00000101 (5)00000001 (1)

如果叁加&运算的是负数(如-3&-5), 则要以补码形式表示为二进制数,然后再按位进行“与”运算。

按位与运算的用途

清零

■若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合以下条件:原来的数中为|的位,新数中相应位为O。然后使二者进行&运算,即可达到清零目的。

■例如:要求将二进制数11100101的第2位清零

“按位或”运算符( | )

两个相应的二进制位中只要有一个为|,该位的结果值为|。

即:

0|0=0 , 0|1= 1,

1|0=1,1|1=1

■例如:

001 10000000011110021111

“异或”运算符( ^)

异或运算符^ 也称XOR运算符。它的规则是:

若叁加运算的两个二进制位同号则结 果为O(假), 异号则结果为| (真)

即:0^ 0=0,0^ 1=1,1^ 0=1,1^1=0例如:

00111001

00101010
——————
00010011

猜你喜欢

转载自blog.csdn.net/yooppa/article/details/113059299