코드 변환기는 무엇입니까 : 바이너리에서 그레이 코드로 및 그레이 코드에서 바이너리로 변환

문제를 제거하기 위해 도구를 사용해보십시오





컴퓨터에서는 바이너리를 회색으로, 회색을 바이너리로 변환해야합니다. 이 변환은 2 진에서 회색으로 변환과 회색에서 2 진으로 변환이라는 두 가지 규칙을 사용하여 수행 할 수 있습니다. 첫 번째 변환에서 그레이 코드의 MSB는 이진 코드의 MSB와 항상 동일합니다. 그레이 코드 출력의 추가 비트는 EX-OR 논리 게이트 개념을 사용하여 현재 인덱스와 이전 인덱스의 바이너리 코드에 대해 얻을 수 있습니다. 여기서 MSB는 가장 중요한 비트 일뿐입니다. 첫 번째 변환에서 이진 코드의 MSB는 특정 이진 코드의 MSB와 항상 동일합니다. 이진 코드 출력의 추가 비트는 EX-OR을 사용하여 얻을 수 있습니다. 논리 게이트 현재 색인에서 회색 코드를 확인하여 개념. 현재 회색 코드 비트가 0이면 이전 이진 코드를 복사 한 후 이전 이진 코드 비트를 반대로 복사합니다. 이 기사에서는 이진-그레이 코드 변환기와 회색-이진 코드 변환기를 포함하는 코드 변환기에 대한 개요를 설명합니다.

바이너리 코드는 무엇입니까?

디지털 컴퓨터에서는 이진수 체계를 기반으로 사용되는 코드를 이진 코드라고합니다. 0과 1을 통해 표현되는 ON & OFF와 같은 두 가지 가능한 상태가 있습니다. 디지털 시스템은 10 자리 숫자를 사용하며, 여기서 모든 숫자 위치는 10의 거듭 제곱을 나타냅니다. 이진 시스템에서 숫자의 모든 위치는 2의 제곱을 나타냅니다.




이진 코드 신호에는 실행할 문자, 숫자 및 작업을 나타내는 일련의 전기 펄스가 포함됩니다. 클록 장치는 트랜지스터와 같은 구성 요소뿐만 아니라 일반 펄스를 전송하는 데 사용되며, 그렇지 않으면 신호를 차단하기 위해 켜고 끕니다. 이진 코드에서 0에서 9까지의 모든 10 진수는 4 개의 이진 비트 / 자리 세트를 통해 표시 될 수 있습니다. 덧셈, 뺄셈, 곱셈 및 나눗셈과 같은 기본 4 가지 산술 연산은 모두 이진수에 대한 기본 부울 대수 함수의 조합으로 줄일 수 있습니다.

그레이 코드는 무엇입니까?

그레이 코드 또는 RBC (반사 이진 코드) 또는 순환 코드는 일련의 이진수 시스템입니다. 이 반사 된 이진 코드를 호출하는 주된 이유는 초기 N / 2 값이 마지막 N / 2 값과 비교할 때 역순이기 때문입니다. 이러한 종류의 코드에서 두 개의 연속 값은 단일 비트의 이진수를 통해 변경됩니다. 이 코드는 주로 하드웨어에 의해 생성 된 공통 이진수 시리즈에 사용됩니다.



이진수는 단일 숫자에서 연속으로 전환되면 오류를 일으킬 수 있습니다. 이러한 유형의 코드는 기본적으로 숫자 간의 변경이 완료되면 1 비트 만 변경하여이 문제를 해결합니다.

이러한 종류의 코드는 매우 가볍고 위치 전체에 명시된 숫자 값에 의존하지 않습니다. 이러한 종류의 코드는 단일 값을 연속 값으로 변경하면 단일 비트 만 변경되기 때문에 순환 변수 코드라고도합니다.


이것은 단위 거리 코드에 가장 많이 사용되지만 산술 기능에는 적합하지 않습니다. 그레이 코드의 애플리케이션에는 아날로그-디지털 변환기 및 오류 수정을위한 디지털 통신이 포함됩니다. 첫째, 회색 코드는 이해하기 쉽지 않지만 인식하기가 매우 쉽습니다.

바이너리-그레이 코드 변환기

이진 코드는 0과 1과 같은 두 가지 값을 사용하는 매우 간단한 데이터 표현이며 주로 컴퓨터 세계에서 사용됩니다. 이진 코드는 높은 값 (1) 또는 낮은 값 (0)이거나 값이 수정 될 수도 있습니다. 회색 코드 또는 반사 된 이진 코드는 일반적으로 1과 0으로 표시되는 켜짐 및 꺼짐 표시기로 정렬 된 이진 코드 특성을 추정합니다. 이 코드는 바이너리의 오류 수정뿐만 아니라 명확성을 확인하는 데 사용됩니다. 연락 .

바이너리를 그레이 코드로 변환하는 것은 논리 회로 . 회색 코드는 비트 위치에 특정 가중치가 지정되지 않았기 때문에 가중치가없는 코드입니다. n- 비트 코드는 2 행의 다음 축에서 n-1 비트 코드를 재생하여 얻을 수 있습니다.n-1, 최상위 비트 0을 축 아래에 배치하고 최상위 비트 1을 축 아래에 배치합니다. 단계별 회색 코드 생성은 다음과 같습니다.

바이너리에서 그레이 코드로의 변환 논리 회로

바이너리에서 그레이 코드로의 변환 논리 회로

이 방법은 Ex-OR 게이트를 사용하여 바이너리 비트간에 수행합니다. 다음의 가장 좋은 예는 바이너리를 회색으로 변환하는 것을 아는 데 매우 유용합니다. 이 변환 방법에서는 그레이 코드 번호의 기본 비트 또는 MSB 비트가 이진수와 유사하므로 현재 이진수의 MSB 비트를 내립니다.

주어진 이진수에 해당하는 그레이 코딩 된 숫자를 생성하기 위해 곧은 그레이 코딩 된 비트를 얻으려면 두 번째 숫자를 향해 기본 숫자 또는 이진 숫자의 MSB 숫자를 추가하고 그레이 코드의 기본 비트 옆에 제품을 적어 둡니다. 다음 이진 비트를 세 번째 비트에 추가 한 다음 2 옆의 제품을 기록해 둡니다.nd약간의 회색 코드. 마찬가지로 최종 바이너리 비트까지이 절차를 따르고 다음에 따라 결과를 기록해 둡니다. EX-OR 논리 연산 해당하는 회색 코드 이진 숫자를 생성합니다.

바이너리-그레이 코드 변환기의 예

바이너리 코드 숫자가 bo, b1, b2, b3 인 반면 특정 그레이 코드는 다음 개념을 기반으로 얻을 수 있다고 가정합니다.

코드 변환 예

코드 변환 예

위의 작업에서 마지막으로 g3 = b3, g2 = b3 XOR b2, g1 = b2 XOR b1, g0 = b1 XOR b0과 같은 회색 값을 얻을 수 있습니다.

변환 예

변환 예

예를 들어 이진 값 b3, b2, b1, b0 = 1101을 취하고 위의 개념에 따라 회색 코드 g3, g2, g1, g0을 찾습니다.

g3 = b3 = 1

g2 = b3 XOR b2 = 1 XOR 1 = 0

g1 = b2 XOR b1 = 1 XOR 0 = 1

g0 = b1 XOR b0 = 0 XOR 1 = 1

바이너리 1101 값의 최종 회색 코드는 1011입니다.

바이너리-그레이 코드 변환기 테이블

십진수

바이너리 코드

그레이 코드

0

00000000
10001

0001

0010

0011

00110010

4

0100

0110

50101

0111

6

01100101
70111

0100

8

10001100 년

9

1001

1101 년

101010 년

1111 년

열한

1011

1110 년

12

1100 년1010 년

13

1101 년

1011

141110 년

1001

열 다섯1111 년

1000

바이너리를 그레이 코드로 변환하기위한 VHDL 코드 아래에 주어진다.

라이브러리 ieee
ieee.std_logic_1164.ALL 사용
엔티티 bin2gray는
port (bin : in std_logic_vector (3 down to 0) – 이진 입력
G : out std_logic_vector (3 downto 0) – 회색 코드 출력
)
bin2gray 종료
bin2gray의 아키텍처 gate_level은
시작하다
–Xor 게이트.
G (3)<= bin(3)
G (2)<= bin(3) xor bin(2)
G (1)<= bin(2) xor bin(1)
G (0)<= bin(1) xor bin(0)
종료

장점

그만큼 바이너리 코드의 장점 다음을 포함하십시오.

  • 이진 코드 사용의 주요 이점은 단순히 전자 장치를 통해 표시된다는 것입니다.
  • 바이너리 데이터는 저장하기도 매우 간단합니다.
  • 전자적 및 기계적으로 의미 및 제어가 매우 쉽습니다.
  • 심볼 표현 간의 불일치를 증가시켜 오류 가능성을 줄일 수 있습니다.

그만큼 바이너리 코드의 단점 다음을 포함하십시오.

  • 주어진 수의 전체 위치 값 시스템을 나타 내기 위해 필요한 기호 수를 늘릴 수 있습니다.
  • 인간은 길이와 기본을 통해 10 진수를 사용하기 때문에 매우 효과적으로 읽을 수 없습니다.
  • 논리 번호를 나타 내기 위해 많은 숫자를 사용합니다.

응용

바이너리 코드의 응용은 다음과 같습니다.

  • 이진 코드는 통신뿐만 아니라 문자열과 비트 문자열과 같은 다양한 데이터 인코딩 기술을 계산하는 데 사용됩니다. 이 메서드에서 사용하는 너비는 가변 너비 문자열로 고정됩니다.
  • 컴퓨터 언어는 주로 2 자리 숫자 체계에 의존하기 때문에 프로그래밍뿐만 아니라 컴퓨터 언어에서도 사용됩니다.

이진 코드 변환기에 회색

이 회색에서 바이너리로의 변환 방법은 또한 회색 비트와 바이너리 비트 사이에서 EX-OR 논리 게이트의 작동 개념을 사용합니다. 단계별 절차가 포함 된 다음 예제는 회색 코드에서 이진 코드로의 변환 개념을 아는 데 도움이 될 수 있습니다.

회색을 이진 코드로 변경하려면 회색 코드 번호의 MSB 숫자를 내리십시오. 회색 코드의 기본 숫자 또는 MSB가 이진 숫자와 유사하기 때문입니다.

다음 스트레이트 바이너리 비트를 얻기 위해, 그것은 그레이 코드의 다음 비트에 대한 바이너리의 MSB 비트 또는 1 차 비트 사이에서 XOR 연산을 사용합니다.

회색에서 이진 코드로의 변환 논리 회로

회색에서 이진 코드로의 변환 논리 회로

마찬가지로 세 번째 스트레이트 바이너리 비트를 얻기 위해 그레이 코드의 두 번째 비트 또는 MSB 비트에서 세 번째 MSD 비트까지 그레이 코드 등의 XOR 연산을 사용합니다.

Gray to Binary 코드 변환기의 예

가정하자 그레이 코드 숫자 g3, g2, g1, g0 반면 특정 이진 코드 숫자는 bo, b1, b2, b3이며 다음 개념을 기반으로 얻을 수 있습니다.

변환 예

변환 예

위의 연산에서 마지막으로 b3 = g3, b2 = b3 XOR g2, b1 = b2 XOR g1, b0 = b1 XOR g0과 같은 이진 값을 얻을 수 있습니다.

코드 변환 예

코드 변환 예

예를 들어 회색 값 g3, g2, g1, g0 = 0011을 취하고 위의 개념에 따라 이진 코드 b3, b2, b1, b0을 찾습니다.

b3 = g3 = 0

b2 = b3 XOR g2 = 0 XOR 0 = 0

b1 = b2 XOR g1 = 0 XOR 1 = 1

b0 = b1 XOR g0 = 1 XOR 1 = 0

회색 0011 값의 최종 바이너리 코드는 0010입니다.

회색에서 이진 코드 변환기 표

십진수 그레이 코드

바이너리 코드

0

00000000

1

0001

0001

0010

0010

00110011

4

0110

0100

50111

0101

6

01010110
70100

0111

8

1100 년1000
91101 년

1001

10

1111 년1010 년
열한1110 년

1011

12

1010 년1100 년
131011

1101 년

14

10011110 년
열 다섯1000

1111 년

장점

그만큼 그레이 코드의 장점 다음을 포함하십시오.

  • 논리 회로를 줄일 수 있습니다.
  • 클록 도메인을 가로 지르는 데 사용
  • 아날로그에서 디지털로 신호를 변경하는 동안 오류를 최소화하는 데 사용됩니다.
  • 유전 알고리즘 내에서 사용되면 해밍 벽 발생을 줄일 수 있습니다.

단점

그레이 코드의 단점은 다음과 같습니다.

  • 산술 함수에 적합하지 않음
  • 몇 가지 정밀한 애플리케이션에 적용 가능

응용

그레이 코드의 적용은 다음과 같습니다.

  • 아날로그-디지털 변환기에 사용됩니다.
  • 오류 수정을위한 디지털 통신
  • 아날로그에서 디지털로 신호를 변경하는 동안 오류를 줄입니다.
  • 수학 퍼즐
  • 부울 회로 최소화
  • 두 클럭 도메인 간의 통신에 사용됩니다.
  • 유전 알고리즘
  • 위치 인코더

회색 코드에서 이진 변환을위한 VHDL 코드 아래에 주어진다.

라이브러리 ieee
ieee.std_logic_1164.ALL 사용
엔티티 gray2bin은
port (G : in std_logic_vector (3 down to 0) – 회색 코드 입력
bin : out std_logic_vector (3 downto 0) – 이진 출력
)
end gray2bin
gray2bin의 아키텍처 gate_level은
시작하다
–Xor 게이트.
오전 (3)<= G(3)
오전 (2)<= G(3) xor G(2)
오전 (1)<= G(3) xor G(2) xor G(1)
오전 (0)<= G(3) xor G(2) xor G(1) xor G(0)
종료

3 비트 바이너리-그레이 코드 변환기

'b2'비트가 MSB (최상위 비트)이고 'b0'비트가 Binary의 LSB (최하위 비트) 인 b0, b1, b2와 같은 3 비트 이진수의 이진수를 가정합니다. 그레이 코드의 숫자는 g0, g1, g2입니다. 여기서 'g2'숫자는 MSB (최상위 비트) 인 반면 'g0'은 그레이 코드의 LSB (최하위 비트)입니다.

바이너리 코드 – b2, b1, b0

그레이 코드 – g2, g1, g0

000

000
001

001

010

011
011

010

100

110
101

111

110

101

111

100

따라서 k-map을 사용하여 이진-회색 코드 변환기에 대해 부울 표현식을 풀 수 있습니다. g2 = b2, g1 = b1⊕ b2 & g0 = b0 ⊕ b1을 얻을 수 있습니다. 마찬가지로 n 비트 이진수 (bnb (n-1)… b2 b1 b0)를 그레이 코드 (gng (n-1)… g2 g1 g0)로 변경할 수 있습니다.

LSB (최하위 비트)의 경우

g0 = b0⊕b1

g1 = b1⊕b2

g2 = b1⊕b2

g (n-1) = b (n-1) ⊕ bn, gn = bn.

예를 들어 111010 이진수를 그레이 코드로 변환합니다.

따라서 위의 알고리즘을 기반으로

g0 = b0 ⊕ b1 => 0 ⊕ 1 = 1

g1 = b1 ⊕ b2 = 1 ⊕ 0 = 1

g2 = b2 ⊕ b3 = 0 ⊕1 = 1

g3 = b3 ⊕ b4 = 1⊕1 = 0

g4 = b4 ⊕ b5 = 1 ⊕ 1 = 0

g5 = b5 = 1 = 1

따라서 바이너리를 그레이 코드로 변환하면 – 100111이됩니다.

IC 7486을 사용하는 바이너리-그레이 코드 변환기

바이너리를 회색으로, 회색을 바이너리로 변환하는 것은 IC7486을 사용하여 수행 할 수 있습니다. 이를 만들기 위해 필요한 구성 요소는 브레드 보드, 연결 전선, LED, 저항기, XOR (IC7486), 푸시 버튼 스위치 및 전원 공급 장치 용 배터리입니다.

IC7486 패키지에는 주로 4 개의 XOR 로직 게이트가 포함되어 있으며 핀 7과 14는 모든 로직 게이트에 전원을 공급합니다. 단일 XOR 게이트의 o / ps는 유사한 접지 단자를 공유 할 때까지 동일 또는 다른 칩 내에서 다른 로직 게이트의 입력에 연결됩니다.

따라서 이것은 바이너리에서 그레이 코드로의 변환기와 그레이에서 바이너리로의 코드 변환기에 관한 것입니다. 마지막으로 위의 정보로부터 우리는 이 변환기 다른 작업을 수행하는 데 필수적인 역할을 디지털 전자 뿐만 아니라 다양한 번호 체계 간의 통신. 위에서 논의한 코드 변환기 예제는 이러한 계산을 수행하는 방법의 개념을 이해하는 데 도움이 될 수 있습니다. 여기에 질문이 있습니다. 그레이 코드의 적용은 무엇입니까?