首页 > 代码库 > [小米]懂二进制
[小米]懂二进制
时间限制:1秒 空间限制:32768K 热度指数:35899
算法知识视频讲解 题目描述
世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?
输入例子:
1999 2299
输出例子:
7
思路:在二进制中,统计两个数的相应位不同可以利用异或,运算结果相同为0,不同为1,所以异或结果中1的个数就是不同的位数。
1 class Solution { 2 public: 3 /** 4 * 获得两个整形二进制表达位数不同的数量 5 * 6 * @param m 整数m 7 * @param n 整数n 8 * @return 整型 9 */ 10 int countBitDiff(int m, int n) { 11 int res=m^n; 12 int num=0; 13 14 while(res) 15 { 16 if((res&1)==1) 17 ++num; 18 res=res>>1; 19 } 20 21 return num; 22 23 } 24 };
[小米]懂二进制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。