Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)으로 이진수를 그레이 코드로 변환하는 프로그램

이진수(binary)를 그레이 코드(Gray code)로 변환해야 할 때는 XOR 연산을 수행하는 함수를 정의하면 간단하게 처리할 수 있습니다. 그레이 코드는 인접한 두 코드 값 사이에 한 비트만 차이가 나는 특성이 있어, 디지털 회로나 통신 시스템에서 오류를 줄이는 데 널리 활용됩니다.

예제 코드

def binary_to_gray_op(n):
    n = int(n, 2)
    n ^= (n >> 1)

    return bin(n)[2:]

gray_val = input('Enter the binary number: ')
binary_val = binary_to_gray_op(gray_val)
print('Gray codeword is :', binary_val)

실행 결과

Enter the binary number: 101100110
Gray codeword is : 111010101

동작 원리 설명

  • binary_to_gray_op라는 이름의 함수가 정의되며, 이진수 문자열을 매개변수로 받습니다.

  • int(n, 2)를 사용해 입력받은 이진수 문자열을 정수 값으로 변환합니다.

  • n ^= (n >> 1) 연산을 수행합니다. 즉, 원래 값과 오른쪽으로 한 비트 시프트한 값을 서로 XOR 연산하는데, 이것이 그레이 코드 변환의 핵심 공식입니다.

  • bin(n)[2:]를 통해 결과를 이진수 문자열로 반환합니다. 슬라이싱 [2:]는 앞에 붙는 접두사 0b를 제거하는 역할을 합니다.

  • 사용자로부터 이진수를 입력받습니다.

  • 함수를 호출하고 입력값을 매개변수로 전달한 뒤, 변환된 결과를 콘솔에 출력합니다.

정리

그레이 코드 변환은 단 한 줄의 XOR 연산으로 구현할 수 있을 만큼 간단하지만, 엔코더 위치 판독, Karnaugh 맵 작성, 디지털 시스템의 오류 최소화 등 다양한 분야에서 실질적으로 활용됩니다. 위 예제처럼 파이썬의 비트 연산자를 활용하면 별도의 라이브러리 없이도 효율적으로 구현할 수 있습니다.