首页 > 移动平台 > 详细

[小米]懂二进制

时间:2017-05-25 19:34:42      阅读:294      评论:0      收藏:0      [点我收藏+]
时间限制: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 };

 

[小米]懂二进制

原文:http://www.cnblogs.com/bxyan/p/6905492.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!