import java.util.Scanner; /** * @author supermejane * @date 2025/10/11 15:36 * @description */ public class Main { //1.一开始看错题目,以为是min(a, b)为准,忽略max(a, b)更长的部分, 这道题直接a ^ b之后按照上一题的方法计算1的位数就行了 // 2.如果要以min(a, b)为准,把 // int big = Math.max(a, b); // int cnt = 0; // while (big > 0) { // big >>= 1; // cnt++; // } //替换为 // int small = Math.min(a, b); // int cnt = 0; // while (small > 0) { // small >>= 1; // cnt++; // } public static void main(String[] args) { Scanner in = new Scanner(System.in); int a = in.nextInt(), b = in.nextInt(); if (a == b) System.out.println(0); else { int big = Math.max(a, b); int cnt = 0; while (big > 0) { big >>= 1; cnt++; } int big2 = Math.max(a, b) & ((1 << cnt) - 1); int n = big2 ^ Math.min(a, b); int result = 0; while (n > 0) { result += n & 1; n = n >> 1; } System.out.println(result); } } }