首页 > 技术文章 > Lintcode: Flip Bits

EdwardLiu 2016-01-06 04:34 原文

Determine the number of bits required to flip if you want to convert integer n to integer m.

Have you met this question in a real interview? Yes
Example
Given n = 31 (11111), m = 14 (01110), return 2.

Note
Both n and m are 32-bit integers.

This is to test XOR(called: exclusive or)

Notice "=="'s order higher than "&"

 1 class Solution {
 2     /**
 3      *@param a, b: Two integer
 4      *return: An integer
 5      */
 6     public static int bitSwapRequired(int a, int b) {
 7         // write your code here
 8         int res = 0;
 9         int xor = a ^ b;
10         for (int i=0; i<32; i++) {
11             if (((xor>>i)&1) == 1)
12                 res++;
13         }
14         return res;
15     }
16 };

 

推荐阅读