位运算符

来源:互联网 发布:广东网络医院设在哪里 编辑:程序博客网 时间:2024/06/05 07:37
位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。 优先级从高到低,依次为~、&、^、|按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x & 0177(八进制表示)。二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x = x & 077。按位或运算的典型用法是将一个位串信息的某几位置为1。如将要获得最右4位为1,其他位与变量j原来其他位保持相同,可用逻辑或运算017|j;按位异或运算的典型用法是求一个位串信息的某几位信息的反。如果取反一个字符串的某一位,则将变量对应的那一位置为1,变量对应位置为0则不改变这个字符串对应的位。如欲求整型变量j的最右4位信息的反,用逻辑异或运算017^j,就能求得j最右4位的信息的反,即原来为1的位,结果是0,原来为0的位,结果是1。 交换两个值,不用临时变量,假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:a=a^b;(记录a和b对应位是否相同,1不相同,0相同) b=b^a;  (对b进行运算,如果刚才记录的位为1,则改变b对应位,因为他和a不同,如果刚才记录的为0,则不改变对应位,因为他和a相同,这样b就得到了原来a的值)   a=a^b;(然后,对现在的b,再进行改变,就又成为了原来b的值)取反运算常用来生成与系统实现无关的常数。如要将变量x最低6位置成0,其余位不变,可用代码x = x & ~077实现
原创粉丝点击