求整数A和B的二进制表示中有多少位是不同?
2015-03-29 23:05
204 查看
如果有题目要求整数A和B二进制表示中多少位是不同的?
那我们要先考虑一个unsigned类型中变量1的个数?我们可以考虑简单的移位运算,向右移位,我们进行判断如果不是1直接丢掉,使用&运算符即可。
由此,比较两个整数二进制表示中有多少不同,先将两数进行异或运算A^B,相同的位就变成0了,然后用上述方法统计A中1的个数就是要求的。
那我们要先考虑一个unsigned类型中变量1的个数?我们可以考虑简单的移位运算,向右移位,我们进行判断如果不是1直接丢掉,使用&运算符即可。
int count(unsigned A) { int num = 0; while(A){ num += A & 0x01; A >>= 1; } return num }
由此,比较两个整数二进制表示中有多少不同,先将两数进行异或运算A^B,相同的位就变成0了,然后用上述方法统计A中1的个数就是要求的。
相关文章推荐
- 如何求整数A和B的二进制表示中有多少位不同?
- 整数A和B的二进制表示中有多少位不同
- 整数A和B的二进制表示中有多少位是不同的
- 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?
- 整数A和B的二进制表示中有多少位不同
- 整数A和B的二进制表示有多少位不同
- 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?
- 求整数A和整数B的二进制表示中有多少位是不同的?
- 求正整数A和正整数B的二进制表示中有多少位是不同的
- 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?
- c语言:输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n
- 【C语言】【笔试题】两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
- 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
- 输出一个整数的每一位。两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 4.编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 整数的二进制表示中有多少个1
- 用c语言实现,两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?