设为首页 加入收藏

TOP

将integer的bit位翻转
2013-02-08 14:31:24 来源: 作者: 【 】 浏览:458
Tags:integer bit 翻转

  [cpp]

  #include <iostream>

  typedef unsigned int uint;

  uint switch_digit(uint i, uint j, uint n)

  {

  uint i_bit = ((n 》 i) & 1);

  uint j_bit = ((n 》 j) & 1);

  if (i_bit ^ j_bit) // should be swithed

  {

  n = (1 《 j) ^ (1 《 i) ^ n;

  }

  return n;

  }

  uint reverse_integer(uint n)

  {

  uint length = sizeof(uint) * 8;

  uint low = 0;

  uint high = length - 1;

  while (low < high)

  {

  n = switch_digit(low++, high--, n);

  }

  return n;

  }

  int main()

  {

  uint n = 1;

  n = reverse_integer(n);

  return 0;

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Win32 SDK 打砖块游戏 下一篇C++标准库容器总结

评论

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