第十二章位运算位运算符和位运算位运算举例位段第一节位运算符和位运算六种位运算符&按位与|按位或^按位异或~取反右移第一节位运算符和位运算说明:位运算符中除~以外,均为二目(元)运算符,即要求两侧各有一个运算量运算量只能是整型或字符型的数据,不能为实型数据第一节位运算符和位运算一、按位与运算只有参与运算的两个二进位均为1时,结果位才为1,否则为0,参与运算的数以补码方式出现0&0=00&1=01&0=01&1=1第一节位运算符和位运算例如:9&5可写算式如下:00001001(9的二进制补码)&00000101(5的二进制补码)00000001(1的二进制补码)第一节位运算符和位运算特殊用途:1
清零找一个二进制数使其所有原来的数中为1的位都为0即可,然后作&运算例如:&100101000000000000101011第一节位运算符和位运算2
取一个数中的某些指定位找一个二进制数使其所有原来的数中要保留的位为1,其他位为0即可例如:00101101&0000111100001101第一节位运算符和位运算3
要保留哪一位就与一个只有在该位取1的二进制数作&例如:01001011&00001000(保留第4位)00001000第一节位运算符和位运算二、按位或运算只要参与运算的二个二进位有一个为1时,结果位就为1,参与运算的两个数均以补码出现0|0=00|1=11|0=11|1=1第一节位运算符和位运算例如:9|5可写算式如下:00001001|0000010100001101(十进制为13)第一节位运算符和位运算三、按位异或运算参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1,参与运算数仍以补码出现相同为0,不同为10^0=00^1=11^0=11^1=0第一节位运算符和位运算例如:9^5可写成算式如下:00001001^00000101000011