您的位置:首页 > 其它

位运算的使用和一些技巧

2014-08-26 10:59 197 查看
位运算有以下几种:~ & ^ |,为 按位取反 按位与 按位异或 按位或,优先级从左到右依次降低。

按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取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数值交换。

利用位操作命令可以非常紧凑地存储布尔值

而布尔值为0和1刚好是bit位的值,因此微操作可以紧凑存储一堆有共性的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: