第18题 比较两个整数比特位不同的数量

位数转换计数
本文介绍了一种通过异或和位运算来计算将整数A转换为整数B所需的位翻转次数的方法。该方法使用C语言实现,并提供了一个具体的示例:输入31和14,输出2。

此题来自 cracking the coding interview

write a function to determine the number of of bits required to convert integer A to integer B

input: 31, 14

output: 2




#include<stdio.h> int count(int a, int b) { int c=0; int x; for(x=a^b; x!=0; x=x>>1) c += x&1; return c; } int main() { int a = 31; int b = 14; printf("%d\n",count(31,14)); }
关于位运算操作,经常会用到异或,xor



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值