Chinaunix首页 | 论坛 | 博客
  • 博客访问: 184986
  • 博文数量: 36
  • 博客积分: 230
  • 博客等级: 二等列兵
  • 技术积分: 352
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-22 18:09
文章分类

全部博文(36)

文章存档

2013年(29)

2011年(5)

2010年(2)

我的朋友

分类: C/C++

2013-03-20 18:57:26

 /*编程实现比特位反转,P为要反转的起始比特位,n是要反转的比特位数,


比如 0x0001 0001 p=4 n=3 反转后结果为 

     0x0110 0001   */


#include
#include

int bit_convert(int d, int b, int n)
{
  int i;
  for (i=0;i   { if (d & (0x01<<(b+i))
      d &= ~(0x01<<(b+i)); 
    else d |= 0x01<<(b+i);
  } 
  return d;
}
 
int main(void)
{   int i;
    i = bit_convert(0x51, 3, 2);
    printf("Result is %x \n", i);
   return 0; 
}   
/*--   E  --*/
谢谢欣赏,欢迎指正!
阅读(3382) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~