9.5位操作(5)——确定需要改变几个位,才能将整数A转成B
9.5位操作(五)——确定需要改变几个位,才能将整数A转成B
方法二:
/**
* 功能:确定需要改变几个位,才能将整数A转成B。
*/
两种方法:
方法一:
/** * 思路:使用异或操作。 * 确定A^B有几个位为1。 * @param a * @param b * @return */ public static int bitSwapRequired(int a,int b){ int count=0; for(int c=a^b;c!=0;c>>=1){ count+=c&1; } return count; }
方法二:
/** * 思路:不断反转最低有效位,计算要多少次c才会变成0。 * @param a * @param b * @return */ public static int bitSwapRequired2(int a,int b){ int count=0; for(int c=a^b;c!=0;c=c&(c-1)){ count++; } return count; }
版权声明:本文为博主原创文章,未经博主允许不得转载。