确定需要改变几个位,才能将整数A转成B
确定需要改变几个位,才能将整数A转成B
一贱书生 发表于1年前
确定需要改变几个位,才能将整数A转成B
  • 发表于 1年前
  • 阅读 11
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

/**

 * 功能:确定需要改变几个位,才能将整数A转成B。

 */

 

两种方法:

方法一:

[java] view plain copy

 

  1. /** 
  2.  * 思路:使用异或操作。 
  3.  *      确定A^B有几个位为1。 
  4.  * @param a 
  5.  * @param b 
  6.  * @return 
  7.  */  
  8. public static int bitSwapRequired(int a,int b){  
  9.     int count=0;  
  10.       
  11.     for(int c=a^b;c!=0;c>>=1){  
  12.         count+=c&1;  
  13.     }  
  14.       
  15.     return count;  
  16. }  


方法二:

[java] view plain copy

 

  1. /** 
  2.  * 思路:不断反转最低有效位,计算要多少次c才会变成0。 
  3.  * @param a 
  4.  * @param b 
  5.  * @return 
  6.  */  
  7. public static int bitSwapRequired2(int a,int b){  
  8.     int count=0;  
  9.       
  10.     for(int c=a^b;c!=0;c=c&(c-1)){  
  11.         count++;  
  12.     }  
  13.       
  14.     return count;  
  15. }  
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 19
博文 722
码字总数 600072
×
一贱书生
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: