位运算---整数间的转化
来源:互联网 发布:网上百家樂作弊软件 编辑:程序博客网 时间:2024/04/30 17:30
此题巧妙地转为熟悉的的求一个数中1的个数,告诉我们一些看似不熟悉的题目其实认真想想可以转为化我们熟悉的题目。
//题目描述////编写一个函数,确定需要改变几个位,才能将整数A转变成整数B。//给定两个整数int A,int B。请返回需要改变的数位个数。//测试样例://10, 5//返回:4//思路:A 需要变换 多少位 才能得到B,位变换无非就是0 - 1, 1 - 0的过程所以,A和B之间 有多少的不同的0 - 1, 1 - 0的变换就有需要多少位的变换,//由于异或操作是 相同为0 不同为1 也即1 - 0, 0 - 1的结果为1,也就是转换成A^B之后 1 的个数求解;--->问题转化class Transform {public: int calcCost(int A, int B) { // write code here int res = A ^ B; int count = 0; while (res != 0) { if ((res & 1) != 0) { count++; } res >>= 1; } return count; } int calcCost(int A, int B) { // write code here int res = A ^ B; int count = 0; while (res != 0) { count++; //去掉最后一位的1 例如 1111 & (1111-1) = 1110 将最后一位1 去掉 res &= (res - 1); } return count; }};
0 0
- 位运算---整数间的转化
- 位运算---只使用位运算实现整数的加减乘除
- 2个整数的平均值-位运算
- 利用位运算判断整数的正负
- 位运算求两个整数的平均值
- 位运算求两个整数的平均值
- 位运算实现整数的加减乘除
- 位运算-集合的整数表示
- 位运算--集合的整数表示
- 位运算---计算整数的N次方
- 位运算表示集合的整数
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 用位运算实现两个整数的加减乘除运算
- 解决Kendo ComboBox显示多列走样 (备忘)
- 单链表的实现
- 特征选择(三)- K-L变换
- C# 反编译-Reflector 反混淆-De4Dot 修改dll/exe代码-reflexil
- 最大公倍数
- 位运算---整数间的转化
- 多项式加法
- 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
- Spring学习总结(19)——Spring概念详解
- 检查iOS项目中是否使用了IDFA
- Mysql 工作原理
- 层次遍历二叉树
- 将博客搬至CSDN
- Quartz简介