第11章位运算本章主要内容1
按位取反运算2
按位左移运算3
按位左移运算4
按位与运算5
按位或运算6
按位异或运算7
复合位运算第11章位运算第11章位运算11
1位运算符C既具有高级语言的特点,又具有低级语言的功能,位运算能力就是其特色之一
所谓位运算就是指进行二进制位的运算
C提供的位运算符有:运算符含义&按位与¦按位或按位异或~取反右移说明:位运算符中除“~”外,其余均为二目运算符,即要求两侧各有一个运算量
运算量只能是整型或字符型的数据,不能为实型数据
2“按位与”运算符&参加运算的两个运算量之对应位都为1,则该位的结果为1,否则为0
即:0&0=00&1=01&0=01&1=1例:3&5=13的补码:000000115的补码:00000101&00000001&运算符的用途:清零如果想将一个单元清零(全部二进位为),则只要找一个数的补码的对应位0与被清零数的对应位1刚好对应,然后使两者进行&运算
如:00101011&1001010000000000取一个数中的某些指定位如:a:0010110010101100b:0000000011111111(377)8&0000000010101100得到a的低8位保留一个数的某一位如:01010100(84)10&00111011(59)1000010000(16)1011
3“按位或”运算符¦参加运算的两个运算量之对应位只要有一个为1,则该位的结果为1
即:0¦0=00¦1=11¦0=11¦1=1如:00110000(060)8¦00001111(017)800111111(077)8即一个数与017进行按位或运算,就可将该数的低4位全置为1;与0377进行按位或运算,就可将该数的低8位全置为1
4“异或”运算符参加运算的两个运算量的对应位相同,则该位的结果为0
即:00=00