位运算有以下几种:~ & ^ |,为 按位取反 按位与 按位异或 按位或,优先级从左到右依次降低。
按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x & 0177。二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x = x & 077。
按位或运算的典型用法是将一个位串信息的某几位置为1。如将要获得最右4位为1,其他位与变量j原来其他位保持相同,可用逻辑或运算017|j;
按位异或运算的典型用法是求一个位串信息的某几位信息的反。如欲求整型变量j的最右4位信息的反,用逻辑异或运算017^j,就能求得j最右4位的信息的反,即原来为1的位,结果是0,原来为0的位,结果是1。 异或运算在解一些问题时特别有用。 具体异或有如下性质: 0 ^ x = x, 1 ^ x = ~x。
异或的最常用例子就是运用x^x = 0 这个性质。如交换两个值,不允许用临时变量,该如何解决。
解:假设a = 3, b = 5。 则 可用如下三个等式完成: a = a ^ b, b = a ^ b, a = a ^ b. 三个语句完成后a和b数值交换。
时间: 2024-11-05 17:17:54