• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
疾风知劲草,智者必怀仁。
路漫漫其修远兮,吾将上下而求索...
博客园    首页    新随笔    联系   管理    订阅  订阅
2011年10月26日
用位运算反转一个字节
摘要: 还是不喜欢位运算啊。。。啊啊。。。刚在网上看到一个网友的位运算反转一个字节的帖子,贴过来学习积累啊...上代码:unsigned char reverse8( unsigned char c ){ c = ( c & 0x55 ) << 1 | ( c & 0xAA ) >> 1; c = ( c & 0x33 ) << 2 | ( c & 0xCC ) >> 2; c = ( c & 0x0F ) << 4 | ( c & 0xF0 ) >> 4; return c;}上分 阅读全文
posted @ 2011-10-26 11:13 疾风中的劲草 阅读(4947) 评论(0) 推荐(0)
判断32位无符号整数二进制中1的个数
摘要: 1、比较简单和容易理解的方法就是逐位比较法:#include <iostream> using namespace std; int findone(unsigned int n){ for(int i=0;n>0;n>>=1) i+=(n&1); return i; } int main(){ int n; cin>>n; cout<<findone(n)<<endl; return 0; }这种方法的缺点是比较费时,时间长度取决于n的位数,时间复杂度O(n)。假如上千上万位的话,每一位都要执行一遍,所用时间就很长了。 阅读全文
posted @ 2011-10-26 11:02 疾风中的劲草 阅读(7346) 评论(0) 推荐(0)
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3