位运算之两个数转换进制改变问题(hihocoder)

题目:

给定两个整数A和B,

需要改变几个二进制位才能将A转为B。


样例输入

10 8

样例输出

1

思路:

改变几个即是,原两个数之间有几位是不同的,将两个数异或运算,在同计解中1的个数即可。(统计1的个数在前边详细解释过)

(Java代码)

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int a = sc.nextInt();

int b = sc.nextInt();

int c= a^b;

int count = 0;

while(c!=0) {

c = c&(c-1);

count++;

}

System.out.println(count);

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,985评论 0 2
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,330评论 0 19
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,364评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,187评论 0 41
  • 文/ys枕边书 今天取到了自己的新身份证,上面的照片依然丑出了一个新高度。也忍不住要感叹时光匆匆,一晃就是十年。 ...
    ys枕边书阅读 585评论 6 7