1759: [문제10] 비트주세요1

메모리제한:128 MB 시간제한:1.000 S
Judge Style:Text Compare 만든사람:
제출:14 통과:5

문제 설명

이진수로 변환된 숫자들을 가지고 컴퓨터는 가장 기본적으로 비트끼리 사칙연산을 하거나 각 자리의 비트가 같은지 비교하는 등의 과정을 거친다.

(컴퓨터의 시초라고 부를 수 있는 ‘가산기’는 비트끼리 더하는 기능을 수행한다.)

 

이 중 각 자리의 비트가 서로 같은지 다른지 등을 확인하기 위한 AND 연산, OR 연산, XOR 연산을

“비트 연산자”라고 부른다.

 

두 개의 이진수를 입력받았을 때, 첫째 자리끼리 비트(bit)의 상태가 같은지 비교할 수 있지 않을까?

주어진 a가 b와 같은 수가 되기 위하여 바꾸어야 할 비트의 수를 출력하는 프로그램을 작성해보자.

입력 설명

첫 줄에 정수 a, b가 공백을 기준으로 주어진다.

 1 ≤ a, b ≤ 100,000

출력 설명

바꾸어야 하는 최소 비트의 수를 출력한다.

입력 예시 Copy

5 16

출력 예시 Copy

3

도움

십진수 5는 101

십진수 16은 1000 이다.

따라서 3개의 비트를 바꾸어야 두 숫자가 같아진다.

 

ps. AND, OR, XOR 연산 중에 힌트가 있지 않을까?

출처/분류