XOR 또는 배타적 OR은 오류 검사, 내결함성 등을 위해 패리티 비트를 생성하는 데 사용되는 부울 논리 연산입니다. 이 연산을 나타내기 위해 ^, ⊕, ⊻ 등 다양한 기호가 사용됩니다.
XOR 연산은 두 매개변수가 다른 경우에만 true입니다. 즉, 같은 비트의 XOR은 0이고, 서로 다른 비트의 XOR은 1이다.
같은 비트 -
0^0=0
1^1=0
다른 비트 −
0^1=1
1^0 = 1
두 개의 숫자 a와 b가 주어지면 이진 표현의 길이를 동일하게 만든 후 XOR을 찾습니다.
Tip − 더 작은 숫자 뒤에 후행 0을 추가하면 이진 표현이 동일해집니다.
들어가세요 -
a = 10, b = 5
출력-
0
지침
10의 이진수 표현은 1010이고 5의 이진수 표현은 101입니다.
뒤에 0을 5에 추가하면 1010이 됩니다.
따라서 1010^1010의 XOR 결과는 0입니다.
따라서 출력합니다.
들어가세요 -
a = 15, b = 8
출력 −
7
지침 -
15의 이진수 표현은 1111이고 8의 이진수 표현은 1000입니다.
두 이진 표현의 길이가 동일하므로 후행 0을 추가할 필요가 없습니다.
1111^1000의 XOR 결과는 0111이며, 이는 10진수 표기법으로 7입니다. 따라서 출력은 7입니다.
들어가세요 -
a = 15, b = 3
출력 −
7
지침 -
15의 이진수 표현은 1111입니다. 3의 이진수 표현은 11입니다. 뒤에 0이 붙는 3의 이진수 표현은 1100이 됩니다.
1111^1100의 XOR 결과는 0011입니다.
0011은 십진수로 표현하면 3입니다. 따라서 결과가 출력됩니다.
두 숫자의 자릿수를 세어보세요.
자릿수는 0이 될 때까지 숫자를 오른쪽으로 이동하고 루프가 실행되는 횟수를 세어 계산할 수 있습니다. 숫자를 오른쪽으로 1자리 이동하면 2로 나누는 것과 같습니다.
더 작은 숫자의 자릿수가 더 적은 경우 다음과 같이 왼쪽 시프트를 수행합니다: 더 작은_숫자
두 숫자를 XOR하여 답을 구하고 인쇄하세요.
아래는 이진 표현의 길이를 동일하게 만든 후 두 숫자의 XOR 값을 계산하는 C++ 프로그램입니다.
으아아아시간 복잡도 - O(log n) [로그]
카운트 함수의 while 루프로 인해 시간 복잡도는 대수적입니다.
이 숫자는 0이 될 때까지 2로 나누어지기 때문에 복잡도는 log n base 2가 됩니다.
공간 복잡성 - O(1) [상수]
프로그램에서 추가 공간이 사용되지 않기 때문에 공간 복잡성이 일정합니다.
이 기사에서는 이진 표현의 길이를 동일하게 만든 후 두 숫자의 XOR을 계산하는 문제에 대해 논의했습니다.
XOR의 개념을 설명한 후 예시와 방법을 설명했습니다. 이 방법은 후행 0을 사용하여 이진 표현의 비트 수를 동일하게 만듭니다. 우리는 또한 문제에 대한 의사코드와 C++ 프로그램도 보았습니다.
위 내용은 두 숫자의 이진 표현 길이를 동일하게 조정한 다음 XOR 연산을 수행합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!