设为首页 加入收藏

TOP

C/C++位操作初步(一)
2014-04-06 17:35:32 来源: 作者: 【 】 浏览:249
Tags:C/C ++位 操作 初步

  位操作允许程序员对单独的位进行操作,例如,早某些机器上,短整型占16位,位操作将每一位单独操作。

  C语言位操作基础

  位操作允许程序员设置、清除、测试与其他的操作,这些操作如下表:

 

  这些操作用于整型或者字符型

  1、按位与(&)

 

  通常我们可把按位“与”操作 & 作为关闭某位(即将该位置0)的手段,例如我们想要关闭a数中的第3位,而又不影响其它位的现状,可以用一个数0xF7,即二进制数1111 0111去与a数作按位“与”运算: 0x88 1000 1000 a数

  & 0xF7 1111 0111 屏蔽数

  = 1000 0000

  注意,这个数除第3位为0外,其它各位均为1,操作的结果只会将a数中的第3位置0,而a数的其它位不受影响。也就是说,若需要某个数的第n位关闭,只需要将该数与另一个数按位相与,另一个数除了相应的第n位为0外,其它各位都为1,以起到对其它各位的屏蔽作用。

  应用举例:判断一个数字的奇偶性

  由于在二进制下,当最后一个数字为0,则此数字为偶数,若为1则此数为奇数

  代码如下:

  int even(const int value)

  {

  return ((value & 1)==0);

  }

  2、按位或(|)

 

  通常我们可把按位“或”操作 | 作为置位(即将该位置1)的手段,例如我们想要将a数中的第0位和1位置1,而又不影响其它位的现状,可以用一个数0x03,即二进制数00000011去与a数作按位“或”运算:

  0x88 1000 1000 a数

  | 0x03 0000 0011 屏蔽数

  = 1000 1011

  注意,这个数除第0、1位为1外,其它各位均为0,操作的结果只会将a数中的第0、1位置1,而a数的其它位不受影响。也就是说,若需要某个数的第n位置1,只需要将该数与另一个数按位相“或”,另一个数除了相应的第n位为1外,其它各位都为0,以起到对其它各位的屏蔽作用。

     

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++中的Virtual Function&nb.. 下一篇LuaBridge为Lua绑定C/C++对象

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)
·Redis配置中`require (2025-12-26 03:18:58)
·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)