CC语言第语言第1111章位运算章位运算哈尔滨理工大学计算中心Page2CProgramming二、八、十、十六进制换算表二、八、十、十六进制换算表十进制二进制八进制十六进制00000001000111200102230011334010044501015560110667011177810001089100111910101012A11101113B12110014C13110115D14111016E15111117FPage3CProgramming位运算位运算计算机中的信息是以二进制0、1存储的每个0或1称为一个"位"(bit)在C语言中提供了对二进制位(bit)的直接操作,使C具有了某些汇编语言才有的功能Page4CProgramming位运算符位运算符C语言的位运算符有以下几个&按位"与"|按位"或"^按位"异或"~按位取反右移Page5CProgramming位运算符说明位运算符说明位运算的对象只能是int或char位运算是对每一个二进制位分别进行操作,每个字节(byte)是8个二进制位(bit),以前所进行的所有变量操作均以字节为基本单位"~"为单目运算符,其他均为双目运算符按运算符优先级顺序由高到底排列为:~,,&,^,|优先级相同也可以使用如"&="或"|="等简写形式Page6CProgramming按位与运算(按位与运算(&&))"与"运算的规则如下:a0011b0101a&b0001•与"乘法"类似Page7CProgramming""与与""运算举例运算举例unsignedinta1=077,a2=0150;printf("%o",a1&a2);a1=0177即二进制的0000000000111111a2=0177即二进制的0000000001101000&0000000000101000即八进制的050Pa