位运算的使用和一些技巧
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位的值,因此微操作可以紧凑存储一堆有共性的值。
按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取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位的值,因此微操作可以紧凑存储一堆有共性的值。
相关文章推荐
- 以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- 以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- INFORMIX-SQL的一些使用技巧
- 收集PB使用中的一些资料及技巧
- mysql 一些使用技巧
- Delphi IDE使用的一些主要技巧
- Dos下的一些命令的使用技巧
- INPUT的一些使用技巧
- 一些vi的使用技巧
- 项目开发技巧(六):页面中链接.按钮使用的一些技巧
- 以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- RTF域在b/s下的一些使用技巧
- web页面的一些使用技巧
- Linux一些简单的使用技巧
- Castle ActiveRecord学习实践(9):使用ActiveRecord的一些技巧
- Jasperreport的一些使用技巧
- 一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- “针式背单词”的一些使用技巧
- SlickEdit 一些使用技巧
- 关于使用ASP.NET2.0中GridView控件的一些技巧。