第十二章位运算概述位运算符位运算举例概述C语言是为描述系统而设计的,因此它应当具有汇编语言所能完成的一些功能
前面介绍的指针运算和本章将介绍的位运算就很适合于编写系统软件的需要
所谓位运算是指进行二进制位的运算
位运算符表12
1运算符含义&按位与|按位或^按位异或~取反右移说明:1.位运算符中除~以外,均为二目(元)运算符,即要求两侧各有一个运算量
2.运算量只能是整型或字符型的数据,不能为实型数据
参加运算的两个运算量,如果两个相应的位都为1,则该位的结果值为1,否则为0
即:0&0=0:0&1=0;1&0=0;1&1=1;例如:3&5并不等于不等于8,这是按位与
先把3和5以补码表示,再进行按位与运算
3的补码:000000115的补码:00000101--------------------------------------&:00000001它是1的补码
因此,3&5的值得1
一、“按位与”运算符(&)如果想将一个单元清零,即使其全部二进位为0,只要找一个数,它的补码形式中各位的值符合以下条件:原来的数中为1的位,新数中相应位为0
然后使二者进行&运算
按位与特殊的用途:1.清零
如:原有数为00101011,另找一个数,设它为10010100,它符合以上条件,即在原数为1的位置上,它的位值均为0
将两个数进行&运算:00101011&10010100-01000100也可以2
取一个数中某些指定位
如一个整数a(2个字节),如只想要其中的低字节
只需将a与(377)8按位与即可----------------------------------a|00101100|10101100|b|00000000|11111111|c|00000000|10101100|-----------------------------------要想将哪一位保留下来,就