>  기사  >  백엔드 개발  >  재귀를 사용하여 이진수를 그레이 코드로 변환하는 C++ 프로그램

재귀를 사용하여 이진수를 그레이 코드로 변환하는 C++ 프로그램

PHPz
PHPz앞으로
2023-09-16 13:57:03559검색

재귀를 사용하여 이진수를 그레이 코드로 변환하는 C++ 프로그램

그레이 코드 또는 반사 이진 코드는 두 개의 연속된 값이 단 1비트만 다른 특수한 유형의 숫자 ​​이진 표현입니다. 예를 들어, 1과 2에 해당하는 이진수는 01과 10이며, 여기서 두 비트가 변경됩니다. 하지만 그레이 코드에서는 1은 01, 2는 11이며 단 한 비트만 변합니다. 이 기사에서는 C++의 재귀를 사용하여 주어진 이진수를 해당하는 그레이 코드로 변환하는 방법을 살펴보겠습니다.

숫자를 십진 정수로 전달

첫 번째 예에서는 십진수를 제공합니다. 숫자는 0과 1뿐이지만 숫자는 10진수로 표시됩니다. 예를 들어, 6을 입력으로 전달하려면 110(십진수로 110)을 전달하며 이는 이진수로 6과 동일합니다. 프로그램은 비슷하게 출력을 반환합니다.

알고리즘

  • 이진수를 받는 함수solv()를 정의하세요
  • n이 0이면
    • 0을 반환
  • 종료된다면
  • Last := n의 마지막 숫자
  • second_last = n의 마지막 숫자에서 두 번째
  • 마지막 숫자와 끝에서 두 번째 숫자가 다른 경우
    • 1을 입력하고 솔브를 호출하세요(n은 마지막 비트를 잘라냅니다)
  • 그렇지 않으면
    • 0을 입력하고 솔브를 호출하세요(n은 마지막 비트를 잘라냅니다)
  • 종료된다면
  • solve() 함수가 종료됩니다

으아악

출력

으아악

결론

회색 코드 또는 반사된 바이너리 코드는 연속된 비트에 XOR 연산을 적용하여 찾을 수 있습니다. 주어진 숫자의 마지막 두 자리를 취하여 동일한 결과를 얻을 수 있으며, 두 숫자가 동일하지 않을 경우 함수를 재귀적으로 호출하고 마지막 숫자를 제외한 숫자를 전달하면 결과는 0이 포함된 1 else와 연결됩니다. 그리고 곧. 예제에서는 입력을 정수 십진수로 제공했으며 출력도 정수 십진수 형식입니다. 필요할 때 더 큰 입력을 제공하는 데 사용할 수 있는 문자열 유형 입력을 사용하면 동일한 문제를 해결할 수 있습니다.

위 내용은 재귀를 사용하여 이진수를 그레이 코드로 변환하는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제