하지의 코딩일지/JAVA TEST
XOR를 이용한 이진수 뒤집기
하지마지
2023. 7. 30. 20:55
728x90
두 정수 A와 B를 이진수로 표현했을 때, A를 B로 바꾸기 위해 뒤집어야 하는 비트의 개수를 구하는 문제를 해결하기 위해서는 XOR 연산을 활용할 수 있습니다.
XOR 연산은 두 비트가 다를 때 1을 반환하고, 같을 때 0을 반환합니다. 두 정수 A와 B를 XOR 연산한 결과를 이진수로 표현하면, A와 B의 이진수 표현에서 서로 다른 비트들이 1로 표시됩니다. 그리고 이 1의 개수가 A를 B로 바꾸기 위해 뒤집어야 하는 비트의 개수가 됩니다
class Solution {
public int solution(int A, int B) {
int xorResult = A ^ B;
int count = 0;
// XOR 결과에서 1의 개수를 세기
while (xorResult > 0) {
if ((xorResult & 1) == 1) {
count++;
}
xorResult >>= 1;
}
return count;
}
public static void main(String[] args) {
Solution solution = new Solution();
int A = 29; // 이진수: 11101
int B = 15; // 이진수: 01111
int result = solution.solution(A, B);
System.out.println(result); // 출력 결과: 2 (뒤집어야 하는 비트 개수)
}
}
728x90