问题一:给一个整数v,求它的二进制表示中从右往左数第x位和第y位交换后的值(从0开始计数)。

分析:举个例子,如果v的二进制表示为XXXXaXXXXXXbX,我们交换第1位和第8位。我们是这样做的:

先把这两位的值都取零后的值保存在一个变量里面,即tmp = XXXX0XXXXXX0X,然后再取ans = 0000b000000a0,那么可

以看出tmp | ans就是答案了。现在关键是求ans,ans可以成是这样,ans = (((v>>y)&1)<<x) | (((v>>x)&1)<<y)。

那么很容易写出代码:

unsigned int _swap(int v,int x,int y)
{return v & (~(1 << x)) & (~(1 << y)) | (((v >> y) & 1) << x) | (((v >> x) & 1) << y);
}

问题二:给一个十进制整数v,求它的二进制表示反转后对应的十进制数。

unsigned int Bit_Reverse(unsigned int v)
{v = ((v >> 1) & 0x55555555) | ((v << 1) & 0xaaaaaaaa);v = ((v >> 2) & 0x33333333) | ((v << 2) & 0xcccccccc);v = ((v >> 4) & 0x0f0f0f0f) | ((v << 4) & 0xf0f0f0f0);v = ((v >> 8) & 0x00ff00ff) | ((v << 8) & 0xff00ff00);v = ((v >> 16) & 0x0000ffff) | ((v << 16) & 0xffff0000);return v;
}

对char型数据处理:

unsigned char Bit_Reverse(unsigned char ch)
{ch = (ch &0x55) <<1| (ch >>1) &0x55;ch = (ch &0x33) <<2| (ch >>2) &0x33;ch = (ch &0x0F) <<4| (ch >>4) &0x0F;return ch;
}

问题三:给定一个数x,求它的二进制表示中有多少个1。

int cnt(unsigned int x)
{x = x - ((x>>1)&0x55555555);x = (x & 0x33333333) + ((x>>2)&0x33333333);x = (x + (x>>4)) & 0x0f0f0f0f;x = (x + (x>>8));x = (x + (x>>16));return x&0x3f;
}

二进制位交换,反转,与统计1的个数相关推荐

  1. 个推数据统计产品(个数)iOS集成实践

    2019独角兽企业重金招聘Python工程师标准>>> 最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据.这次我们尝试使用的是个推(之前专门做消息推送的)旗下新 ...

  2. smarty中如何统计数组的个数?

    在做web前端中,很多人会遇到在smarty中如何统计数组的个数,其实很简单 比如数组$array 你只需要用{$array|@count}就可以获取. 转载于:https://www.cnblogs ...

  3. 个推应用统计产品(个数)Android集成实践

    2019独角兽企业重金招聘Python工程师标准>>> 前段时间,我们公司的产品又双叒叕给我们提了新需求,要求我们把APP相关的数据统计分析一下,这些指标包括但不限于应用每日的新增. ...

  4. php如何统计数组的个数,如何用php统计数组元素的个数(附代码)

    这篇文章主要介绍了php统计数组元素个数的方法的相关资料,需要的朋友可以参考下 count():对数组中的元素个数进行统计; sizeof():和count()具有同样的用途,这两个函数都可以返回数组 ...

  5. (篇九)C语言统计某个字母的个数、统计各种字符的个数、统计单词的个数

    文章目录 一.统计某个字母的个数 二.统计各种字符的个数 三.统计单词的个数 本篇文章主要介绍在C语言中统计某个字母的个数.统计各种字符的个数和统计单词的个数:总之就是计数,-由于C语言中没有直接统计 ...

  6. excel怎么按颜色统计单元格个数

    今天跟大家分享一下excel怎么按颜色统计单元格个数 1.打开Excel文件,如下图我们想要统计黄色背景颜色单元格个数 2.选中表格区域 3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信 ...

  7. python统计英文单词个数_统计英文单词的个数的python代码 及 字符串分割

    字符串分割 str="a|and|hello|||ab" alist = str.split('|') print alist结果 str="a hello{这里换成5个 ...

  8. 【094】统计大写字母个数

    ♣题目部分统计大写字母个数 找出给定字符串中大写字符(即'A'-'Z')的个数接口说明原型:int CalcCapital(String str);返回值:int♣答案部分Python isupper ...

  9. 第四章课后习题-用Python实现羊车门问题,最大公约数计算,猜字游戏,统计不同字符个数。

    目录 前言 4.1 猜数游戏 random库中的两个常用函数: eval()函数 4.2 统计不同字符个数 两个内置的字符串处理函数: chr(x) ord(x) 4.3 最大公约数的计算 4.5 猜 ...

  10. Python:统计正负数个数

    统计正负数个数 [问题描述] 从键盘输入非0整数,以输入0为输入结束标志,求平均值,统计正数负数个数. [输入形式] 每个整数一行,最后一行是0,表示输入结束. [输出形式] 输出三行. 第一行是平均 ...

最新文章

  1. 创建一个简单的存储过程(RroGetA_Z),要求输出A到Z之间的26个大写字母
  2. 笑话(15) 这是地球
  3. 计算机专业毕业了,还要不要参加培训班?——Leo网上答疑(8)
  4. C语言试题三十三之比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
  5. struts2被淘汰的原因
  6. Android 系统(257)---Launcher显示未读通知的数量
  7. es6 class语法糖
  8. 如何在iPhone / Android上进行Facebook联系人同步
  9. setsockopt中参数之SO_REUSEADDR的意义
  10. java 药品管理系统_基于Java web的医药药品管理系统
  11. 计算机辅助设计学什么,计算机辅助设计课程教学大纲
  12. fat32文件系统格式在linux,FAT32文件系统的存储组织结构(一)
  13. 金笛邮件服务器解析中小企业对自建邮件系统的误区
  14. 降维 php,线性降维方法 - 百度开发者中心的个人空间 - OSCHINA - 中文开源技术交流社区...
  15. 【干货】线上线下活动策划详细方案.pdf(附下载链接)
  16. C++ 寻找完数 | Java 完数
  17. 基于SOCAT工具的UDP消息通信
  18. 如何下载行政区划边界?
  19. 高颜值智能备忘录:不再遗忘任何要事
  20. 直播预告 | 罗切斯特大学张宋扬、英国剑桥大学刘方宇

热门文章

  1. 生成服务器证书的申请文件和私钥文件
  2. 一个客户端对应一个线程
  3. 数据库压力变大,读写分离吧
  4. 模块-import导入时指定别名
  5. 字符串-定义和基本使用
  6. MYBATIS 批量update 报错的问题
  7. 验证用户输入的是不是中文名字 淘宝精品案例 元素样式设置的方式 链式编程
  8. OAuth2(一)——核心概念
  9. oracle解析select,oracle_select语句例子解析
  10. python中类的定义方法_在Python中定义类变量的正确方法