그레이 부호
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
그레이 코드는 인접한 두 코드의 비트가 단 하나만 다른 특징을 가진 이진 코드이다. 벨 연구소의 조지 R. 스티비츠가 1941년에 이진 반사 그레이 코드를 설명했으며, 프랭크 그레이의 이름을 따서 명명되었다. 그레이 코드는 디지털 시스템의 오류를 최소화하는 데 사용되며, 인접한 값의 변화에서 여러 비트가 동시에 변하는 자연 이진 코드와 달리 한 비트만 변경되어 오류 발생 가능성을 줄인다. 그레이 코드는 디지털 통신, 위치 인코더, 유전자 알고리즘, 논리 회로 최소화 등 다양한 분야에 활용되며, 이진 코드와 그레이 코드 간의 변환 알고리즘이 존재한다. 또한 균형 그레이 코드, 롱 런 그레이 코드, 단조 그레이 코드 등 다양한 특수 유형의 그레이 코드가 있으며, 그레이 등거리와 같은 수학적 개념과 관련이 있다.
더 읽어볼만한 페이지
- 데이터 전송 - 대역폭 제한
대역폭 제한은 네트워크 혼잡 방지, 특정 사용자 과도한 사용 방지, 서비스 품질 관리 등을 위해 컴퓨터 네트워크에서 데이터 전송 속도를 인위적으로 제한하는 기술이다. - 데이터 전송 - 데이터 링크
데이터 링크는 데이터를 송수신하기 위한 통신 연결로, 단방향, 반이중, 전이중 통신으로 나뉘며, 다양한 분야에서 활용되고 특히 항공 분야에서 항공 교통 관제 및 정보 교환, 무인 시스템 제어에 사용된다. - 기수법 - 이진법
이진법은 0과 1 두 개의 숫자를 사용하는 밑이 2인 위치 기수법으로, 컴퓨터 과학의 기초가 되었으며 현대 컴퓨터에서 데이터를 저장하고 처리하는 데 사용된다. - 기수법 - 구진법
구진법은 9를 밑으로 하는 위치 기수법으로 0부터 8까지의 숫자를 사용하여 수를 나타내며, 3의 배수 표현이 간결하고 3의 역수는 유한소수로 표현되는 특징이 있다.
| 그레이 부호 | |
|---|---|
| 개요 | |
![]() | |
| 다른 이름 | 반사 이진 코드 (Reflected Binary Code) |
| 용도 | 위치 인코딩 오류 수정 |
| 상세 정보 | |
| 특징 | 인접한 코드 간에 오직 하나의 비트만 변경됨 |
| 발명가 | 프랭크 그레이 |
| 발명 시기 | 1947년 |
| 특허 | US2632058 US2733432 US2823345 |
| 종류 | |
| 이진 그레이 코드 | 가장 일반적인 형태 |
| n-ary 그레이 코드 | 기수-n 값을 나타냄 |
| 벡-그레이 코드 | 특정 속성을 갖도록 설계됨 |
| 변환 | |
| 이진수에서 그레이 코드로 | 이진수의 최상위 비트는 그레이 코드의 최상위 비트와 동일하며, 나머지 비트는 이진수의 인접한 두 비트의 XOR 연산으로 결정됨 |
| 그레이 코드에서 이진수로 | 그레이 코드의 최상위 비트는 이진수의 최상위 비트와 동일하며, 나머지 비트는 이진수의 이전 비트와 그레이 코드의 현재 비트의 XOR 연산으로 결정됨 |
2. 역사
벨 연구소의 연구원 조지 R. 스티비츠는 1941년에 이진 반사 그레이 코드를 특허 출원했고, 1943년에 승인되었다. 1947년, 프랭크 그레이는 특허 출원에서 "반사 이진 코드"라는 용어를 사용하며, 이 코드가 "아직 인정된 이름이 없다"고 언급했다. 그는 이 코드가 "일종의 반사 과정을 통해 기존 이진 코드로 구성될 수 있다"는 사실에서 이름을 따왔다고 설명했다. 이후 이 코드는 그레이의 이름을 따서 "그레이 코드"로 불리게 되었다.
벨 연구소의 연구원 프랭크 그레이(Frank Gray (연구원))는 1947년 특허 출원에서 "반사 이진 코드"라는 용어를 도입하면서 이 코드가 "아직 인정된 이름이 없다"고 언급했다. 그는 이 코드가 "일종의 반사 과정을 통해 기존 이진 코드로 구성될 수 있다"는 사실에서 이름을 따왔다.
1953년에 출원된 서로 다른 두 특허에서는 "그레이 코드"를 "반사 이진 코드"의 다른 이름으로 사용했다. 그 중 하나는 "최소 오류 코드"와 "순환 순열 코드"도 이름으로 언급했다. 1954년 특허 출원에서는 "벨 전화 그레이 코드"를 언급했다. 그 외에도 "순환 이진 코드", "순환 진행 코드", "순환 순열 이진" 또는 "순환 순열 이진"(CPB) 등으로 불리기도 했다.
그레이 코드는 때때로 19세기 전기 장치 발명가 엘리샤 그레이의 것으로 잘못 알려지기도 하지만, 이는 사실이 아니다. 반사 이진 코드는 엔지니어들에게 알려지기 전에 이미 수학 퍼즐에 적용되었다.
이진 반사 그레이 코드는 1872년 프랑스의 루이 그로(Louis Gros)가 설명한 기계적 퍼즐인 중국 고리 퍼즐의 기본 원리를 나타낸다. 또한, 1883년 프랑스의 에두아르 뤼카가 발표한 하노이의 탑 문제의 해법에도 그레이 코드가 사용되었다. 마틴 가드너는 1972년 8월 사이언티픽 아메리칸의 수학 게임 칼럼에서 그레이 코드에 대한 대중적인 설명을 썼다.
3. 그레이 코드의 원리 및 특징
그레이 코드의 표준 인코딩에서 최하위 비트는 2 on, 2 off의 반복 패턴을 따른다. 다음 숫자는 4 on, 4 off의 패턴을 따릅니다. ''i''번째 최하위 비트는 2''i'' on, 2''i'' off의 패턴을 따른다. 최상위 숫자는 예외인데, ''n''비트 그레이 코드의 경우 최상위 숫자는 2''n''-1 on, 2''n''-1 off의 패턴을 따르며, 이는 두 번째로 중요한 숫자와 동일한(순환) 값 시퀀스이지만 2''n''-2 자리만큼 앞으로 이동한다. 4비트 버전은 아래 표와 같다.십진수 이진수 그레이 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 7 0111 0100 8 1000 1100 9 1001 1101 10 1010 1111 11 1011 1110 12 1100 1010 13 1101 1011 14 1110 1001 15 1111 1000
십진수 15의 경우, 코드는 단 하나의 스위치 변경으로 십진수 0으로 롤오버된다. 이것을 코드의 ''순환'' 또는 ''인접성 속성''이라고 한다.
원칙적으로 주어진 단어 길이에 대해 둘 이상의 코드가 있을 수 있지만, 그레이 코드라는 용어는 음이 아닌 정수를 위한 특정 이진 코드, 즉 ''이진 반사 그레이 코드'' 또는 '''BRGC'''에 처음 적용되었다.
이진 반사 그레이 코드 (BRGC)는 다음과 같은 방법으로 만들 수 있다.
| 2비트 목록: | 00, 01, 11, 10 |
| 반사됨: | 10, 11, 01, 00 |
| 오래된 항목에 0 접두사: | 000, 001, 011, 010 |
| 새 항목에 1 접두사: | 110, 111, 101, 100 |
| 연결됨: | 000, 001, 011, 010, 110, 111, 101, 100 |
1비트 그레이 코드는 ''G''1 = (0,1)이다. 이는 길이가 0인 단일 항목으로 구성된 0비트 그레이 코드 ''G''0 = (Λ)에서 위와 같이 재귀적으로 구축된 것으로 생각할 수 있다.
''G''''n''에서 ''G''''n''+1을 생성하는 이 반복적인 프로세스는 표준 반사 코드의 다음 속성을 갖는다.
- ''G''''n''은 숫자 0, ..., 2''n'' − 1의 순열이다. (각 숫자는 목록에 정확히 한 번 나타난다.)
- ''G''''n''은 ''G''''n''+1의 첫 번째 절반으로 포함된다.
- 코딩은 일단 이진수가 ''G''''n''에 나타나면 모든 더 긴 목록에서 동일한 위치에 나타난다는 의미에서 '안정적'이다. 따라서 숫자의 '반사적인' 그레이 코드 값에 대해 이야기하는 것이 의미가 있다. ''G''(''m'') = 0부터 세는 ''m''번째 반사 그레이 코드이다.
- ''G''''n''의 각 항목은 이전 항목과 단 하나의 비트만 다릅니다. (해밍 거리는 1입니다.)
- ''G''''n''의 마지막 항목은 첫 번째 항목과 단 하나의 비트만 다릅니다. (코드는 순환적입니다.)
이러한 특성은 이진 값을 해당 그레이 코드로 변환하는 빠르고 간단한 방법을 제공한다. 각 비트는 입력 값의 다음 상위 비트가 1로 설정되면 반전된다.
그레이 코드는 어떤 값에서 인접한 값으로 변화할 때 항상 1비트만 변화한다는 점이 이용된다.
일반적인 이진법에서는 인접한 값으로 이행할 때 최하위 자릿수만 0←→1로 바뀌는 경우를 제외하고 일반적으로 1개 이상의 비트가 변화한다. 예를 들어 3에서 4로 변화하는 경우, 011에서 100으로 3개의 비트가 변화한다.
절대적인 각도를 디지털 값으로 출력하는 앱솔루트 로터리 엔코더와 같은 기기에서, 기계적인 접점 등으로 전기 신호의 온오프를 수행하는 경우를 생각해 보자. 이 경우, 기계의 동작이나 데이터 읽기 타이밍에 따라 잘못된 데이터가 얻어질 가능성이 있다. 예를 들어 011에서 100으로 변화할 때 짧은 시간 동안 다음과 같이 출력이 천이될 수 있다.
011 → 010 → 000 → 100
각 비트 모두 변화에 오류가 없는 것이지만, 기계 구조의 정밀도상의 문제로 완벽하게 동시에 모든 비트가 변화하는 것을 보장할 수 없다. 따라서 천이의 도중 단계에서 데이터를 읽으면 010 (2)나 000 (0)과 같은 가짜 데이터를 얻게 될 가능성이 있다.
일반적인 이진법이 아닌 그레이 코드를 사용하면, 인접 값으로의 변화 시 항상 1비트만 바뀌므로 (3에서 4의 변화라면 010에서 110), 어떤 타이밍에 읽더라도 데이터 값은 이전 값 또는 다음 값이므로 가짜 데이터가 생성되지 않는다.
4. 그레이 코드와 이진 코드 간 변환
C영어에서 다음 함수는 이진 숫자와 그에 해당하는 그레이 부호 간의 변환을 보여준다. 그레이 코드에서 이진 코드로 변환하는 것은 각 비트를 한 번에 처리해야 하는 것처럼 보일 수 있지만, 더 빠른 알고리즘이 존재한다.[1]
- 이진수를 그레이 코드로 변환하는 함수는 다음과 같다.
unsigned int binaryToGray(unsigned int num)
{
return num ^ (num >> 1);
}
- `^`는 배타적 논리합 연산자이고, `>>`는 오른쪽 시프트 연산자이다.
- 그레이 코드를 이진수로 변환하는 함수는 다음과 같다.
unsigned int grayToBinary(unsigned int num)
{
unsigned int mask;
for (mask = num >> 1; mask != 0; mask = mask >> 1)
{
num = num ^ mask;
}
return num;
}
- 각 그레이 코드 비트는 모든 상위 비트와 배타적 OR 연산을 수행한다.
- 32비트 이하의 그레이 코드에 대해 더 효율적인 버전은 다음과 같다.
unsigned int grayToBinary32(unsigned int num)
{
num = num ^ (num >> 16);
num = num ^ (num >> 8);
num = num ^ (num >> 4);
num = num ^ (num >> 2);
num = num ^ (num >> 1);
return num;
}
일반적인 이진 표현을 그레이 코드로 변환하려면, 대상 이진 표현과 이를 1비트 오른쪽 시프트하고 선두에 0을 붙인 것과의 배타적 논리합을 취한다. 예를 들어, 십진수 10은 이진수로 1010이므로, 1010과 0101의 배타적 논리합인 1111이 그레이 코드가 된다. C 언어에서는 `v ^ (v >> 1)`과 같이 표현할 수 있다.
반대로 그레이 코드를 이진 표현으로 변환하려면, 그레이 코드의 최상위 비트부터 시작하여 순차적으로 다음 비트와의 배타적 논리합을 취한다. 최상위 비트는 그대로 사용하고, 나머지 비트는 이전 비트의 결과와 배타적 논리합을 계산한다. 예를 들어, 그레이 코드가 1111이면, 최상위 비트 1은 그대로, 다음 비트는 1 ^ 1 = 0, 그 다음 비트는 0 ^ 1 = 1, 마지막 비트는 1 ^ 1 = 0이 되어 이진수 1010을 얻는다.
5. 그레이 코드의 응용
그레이 코드는 디지털 통신 및 위치 인코더 등 다양한 분야에 응용된다.
디지털 통신에서는 오류 정정을 위해 직교 진폭 변조(QAM)과 같은 디지털 변조 방식에서 신호 성상도 배열에 활용된다. 인접한 성상도 점으로 전달되는 비트 패턴이 단 1비트만 다르도록 배열하고, 전방 오류 정정과 결합하여 수신기가 성상도 점이 인접 점의 영역으로 벗어나게 하는 전송 오류를 수정할 수 있게 한다. 이를 통해 전송 시스템은 노이즈에 덜 민감해진다.
위치 인코더에서는 선형 및 회전형 위치 인코더(절대 인코더, 직각 위상 인코더)에 사용되어 이진 인코딩보다 안정적인 위치 정보를 제공한다. 예를 들어, 일부 회전형 인코더는 동심원(트랙)에 전도성 그레이 코드 패턴이 있는 디스크를 사용하고, 각 트랙에는 고정 금속 스프링 접점이 있어 전도성 코드 패턴에 전기적 접촉을 제공한다. 이러한 접점들은 함께 그레이 코드 형태의 출력 신호를 생성한다. 이를 통해 위치 측정 오류를 줄일 수 있다.
유전자 알고리즘에서는 해밍 거리 속성을 활용하여 변이 연산에 사용된다. 코드 내의 변이는 주로 점진적인 변화를 허용하지만, 때로는 단일 비트 변화가 큰 도약을 유발하여 새로운 특성을 얻을 수 있게 한다.
논리 회로 최소화를 위해 카르노 맵의 축 레이블에 사용되어 논리 회로를 간소화하는 데 기여한다.
서로 다른 클록 주파수에서 작동하는 동기식 로직 간 데이터 전송 시 오류를 줄이는 클록 도메인 교차에도 사용된다.
하노이의 탑 문제의 해법을 구하는 데 활용될 수 있다. --
n진 그레이 코드는 이진 그레이 코드를 n진법으로 확장한 형태로, 다양한 진법 체계에서 활용 가능하다.
삼진 그레이 코드의 예시는 다음과 같다.
| 0 → 000 |
| 1 → 001 |
| 2 → 002 |
| 10 → 012 |
| 11 → 010 |
| 12 → 011 |
| 20 → 021 |
| 21 → 022 |
| 22 → 020 |
| 100 → 120 |
| 101 → 121 |
| 102 → 122 |
| 110 → 102 |
| 111 → 100 |
| 112 → 101 |
| 120 → 111 |
| 121 → 112 |
| 122 → 110 |
| 200 → 210 |
| 201 → 211 |
| 202 → 212 |
| 210 → 222 |
| 211 → 220 |
| 212 → 221 |
| 220 → 201 |
| 221 → 202 |
| 222 → 200 |
십진법에 특화된 글릭슨 코드, O'Brien 코드, 페더릭 코드, 톰킨스 코드 등도 있다.
| 십진 표기 | 이진 표기 | 그레이 코드 | 글릭슨 코드 | O'Brien 코드 I | O'Brien 코드 II | 페더릭 코드 | 톰킨스 코드 |
|---|---|---|---|---|---|---|---|
| 0 | 0000 | 0000 | 0000 | 0000 | 0001 | 0101 | 0010 |
| 1 | 0001 | 0001 | 0001 | 0001 | 0011 | 0001 | 0011 |
| 2 | 0010 | 0011 | 0011 | 0011 | 0010 | 0011 | 0111 |
| 3 | 0011 | 0010 | 0010 | 0010 | 0110 | 0010 | 0101 |
| 4 | 0100 | 0110 | 0110 | 0110 | 0100 | 0110 | 0100 |
| 5 | 0101 | 0111 | 0111 | 1110 | 1100 | 1110 | 1100 |
| 6 | 0110 | 0101 | 0101 | 1010 | 1110 | 1010 | 1101 |
| 7 | 0111 | 0100 | 0100 | 1011 | 1010 | 1011 | 1001 |
| 8 | 1000 | 1100 | 1100 | 1001 | 1011 | 1001 | 1011 |
| 9 | 1001 | 1101 | 1000 | 1000 | 1001 | 1101 | 1010 |
5. 1. 대한민국에서의 활용
대한민국은 디지털 방송 표준으로 ATSC 방식을 채택하고 있으며, ATSC 표준에서 8-VSB 변조 방식은 그레이 코드를 사용하여 오류 정정 기능을 강화한다. 산업 현장에서는 정밀한 위치 제어가 필요한 경우가 많은데, 이때 로터리 엔코더와 같은 장치에 그레이 코드를 적용하여 위치 측정 오류를 줄이고 시스템의 안정성을 높인다.금속 등의 도체를 노출시킨 패턴을 원반에 부착하고, 이를 여러 브러시로 읽어 각도를 얻는다고 가정할 때, 각도가 변화하여 정확히 경계 부분에 브러시가 있으면 접촉이 불안정하여 읽기 데이터가 1이 될 수도 있고 0이 될 수도 있다. 그러나 왼쪽 그림과 같이 그레이 코드를 기반으로 한 패턴을 사용하면 불안정해지는 비트는 반드시 1비트뿐이므로 각도 검출에 있어 안정적인 결과를 얻을 수 있다.
6. 특수 유형의 그레이 코드
- 균형 그레이 코드(Balanced Gray Code): 서로 다른 좌표 위치에서의 변화 횟수를 가능한 한 가깝게 만들어 균일성을 높인 코드이다. 모든 전이 횟수가 같으면 균일(uniformly balanced)하다고 하며, ''n''이 2의 거듭제곱인 경우에만 존재한다. ''n''이 2의 거듭제곱이 아닐 때는 두 전이 횟수의 차이가 최대 2인 ''잘 균형 잡힌(well-balanced)'' 이진 코드를 구성할 수 있다.
- 롱 런 그레이 코드(Long Run Gray Code): 동일한 위치에서 연속적인 숫자 변화 사이의 거리를 최대화한 코드이다. 즉, 가능한 한 오랫동안 비트가 변경되지 않고 유지되는 최소 런 길이를 유지한다.[5]
- 단조 그레이 코드(Monotonic Gray Code): 상호 연결망 이론에서 유용하며, 특히 프로세서의 선형 배열에 대한 딜레이를 최소화하는 데 사용된다. 이진 문자열의 "가중치"(문자열 내 1의 개수)를 고려할 때, 엄격하게 증가하는 가중치를 가진 그레이 코드는 불가능하지만, 다음 가중치에 도달하기 전에 코드가 두 개의 인접한 가중치를 통과하도록 하여 근사할 수 있다.
- 베케트-그레이 코드(Beckett–Gray Code): 대칭성에 관심이 있었던 아일랜드 극작가 사무엘 베케트의 이름을 따서 명명되었다. 그의 희곡 "쿼드"에서 영감을 받았으며, 특정 제약 조건(FIFO 큐)을 만족하는 코드이다. ''n'' = 2, 5, 6, 7, 8인 경우에는 존재하고, ''n'' = 3 또는 4인 경우에는 존재하지 않는 것으로 알려져 있다.
- 2차원 그레이 코드(Two-dimensional Gray Code): 통신에서 직교 진폭 변조(QAM)의 성상도에서 인접한 점들 간의 비트 오류 수를 최소화하는 데 사용된다. 수평 및 수직 인접 성상도 점은 단일 비트만 다르도록 배열된다.
- Excess-Gray-Code: 특정 코드 값의 일부분(예: 4비트 그레이 코드의 마지막 3비트)을 추출하여 사용하는 코드이다. 원래 값이 증가할 때 추출된 비트에서 거꾸로 카운트하는 속성을 보인다.
7. 그레이 등거리(Gray Isometry)
다음 전단사 매핑 { 0 ↔ 00, 1 ↔ 01, 2 ↔ 11, 3 ↔ 10 }은 등거리 사상을 설정한다. 이는 해밍 거리로 주어진 메트릭을 가진 유한체 위의 메트릭 공간과 리 거리로 주어진 메트릭을 가진 유한환 (일반적인 모듈러 산술) 위의 메트릭 공간 간의 등거리 사상이다. 이 매핑은 해밍 공간 과 의 등거리 사상으로 적절하게 확장된다. 그 중요성은 에서 환-선형 부호의 에서의 그레이 맵 이미지로, 반드시 선형 부호일 필요는 없는 다양한 "좋은" 부호들 간의 대응을 설정하는 데 있다.
8. 관련 코드
그레이 코드와 유사한 여러 이진 코드들이 존재한다.
- Datex 코드 (지안니니 코드(1954)): O'Brien 코드 II의 변형을 사용한다.
- Varec에서 사용된 코드 (ca. 1954): O'Brien 코드 I의 변형과 12진법 및 16진법 그레이 코드 변형을 사용한다.
- Lucal 코드 (1959): 수정된 반사 이진 코드(MRB)라고도 불린다.
- 길햄 코드(1961/1962): Datex 코드 및 O'Brien 코드 II의 변형을 사용한다.
- Leslie 및 Russell 코드 (1964):
- Royal Radar Establishment 코드
- Hoklas 코드 (1988):
다음의 이진화 십진법(BCD) 코드도 그레이 코드 변형이다.
- Petherick 코드 (1953): 왕립 항공 연구소(RAE) 코드라고도 알려져 있다.
- O'Brien 코드 I 및 II (1955): O'Brien I형 코드는 1954년에 Varec에서 사용되었다. 나중에 Watts 코드 또는 Watts 반사 십진법(WRD) 코드로도 알려졌으며, 때로는 모호하게 반사 이진 수정 그레이 코드라고도 한다. O'Brien II형 코드는 이미 1954년에 Datex에서 사용되었다.
- Excess-3 그레이 코드 (1956): 그레이 excess-3 코드, 그레이 3-excess 코드, 반사 excess-3 코드, excess 그레이 코드, 그레이 excess 코드, 10-excess-3 그레이 코드 또는 Gray–Stibitz 코드라고도 불린다. ITT의 Frank P. Turvey Jr.가 설명했다.
- Tompkins 코드 I 및 II (1956):
- Glixon 코드 (1957): 때로는 모호하게 수정된 그레이 코드라고도 한다.
인접하는 부호 간의 해밍 거리가 항상 1인 특징을 가진 부호화는 그레이 코드뿐만이 아니다. 십진법과의 상성을 고려한 부호화인 글릭슨 코드(Glixon code), O'Brien 코드, 페더릭 코드(Petherick code), 톰킨스 코드(Tompkins code)가 있다.
| 십진 표기 | 이진 표기 | 그레이 코드 | 글릭슨 코드 | O'Brien 코드 I | O'Brien 코드 II | 페더릭 코드 | 톰킨스 코드 |
|---|---|---|---|---|---|---|---|
| 0 | 0000 | 0000 | 0000 | 0000 | 0001 | 0101 | 0010 |
| 1 | 0001 | 0001 | 0001 | 0001 | 0011 | 0001 | 0011 |
| 2 | 0010 | 0011 | 0011 | 0011 | 0010 | 0011 | 0111 |
| 3 | 0011 | 0010 | 0010 | 0010 | 0110 | 0010 | 0101 |
| 4 | 0100 | 0110 | 0110 | 0110 | 0100 | 0110 | 0100 |
| 5 | 0101 | 0111 | 0111 | 1110 | 1100 | 1110 | 1100 |
| 6 | 0110 | 0101 | 0101 | 1010 | 1110 | 1010 | 1101 |
| 7 | 0111 | 0100 | 0100 | 1011 | 1010 | 1011 | 1001 |
| 8 | 1000 | 1100 | 1100 | 1001 | 1011 | 1001 | 1011 |
| 9 | 1001 | 1101 | 1000 | 1000 | 1001 | 1101 | 1010 |
- 글릭슨 코드: 9에 해당하는 부호는 그레이 코드가 "1101"인 반면 Glixon code는 "1000"이다. 9와 0의 변화에서도 해밍 거리가 1이 된다.
- O'Brien 코드: Glixon 코드와 마찬가지로, 9와 0의 변화에서도 해밍 거리가 1이 된다. 0에 대해 "0000"을 대응시키지 않는 부호화 중 하나이다.
- 페더릭 코드: 최상위 비트를 반전시킴으로써, 9의 보수(''n''에 대해 9''-n'')가 되는 부호화 중 하나이다.
- 톰킨스 코드: Glixon 코드와 마찬가지로, 9와 0의 변화에서도 해밍 거리가 1이 된다. 0에 대해 "0000"을 대응시키지 않는 부호화 중 하나이다. 또한, 최하위 비트 이외의 모든 비트에서 1인 비율이 1/2이 된다 (최하위 비트는 6/10의 비율로 1이다).
참조
[1]
웹사이트
Understanding Gray Code: A Reliable Encoding System
https://graycode.ie/[...]
2023-06-30
[2]
웹사이트
How to generate Gray Codes for non-power-of-2 sequences
https://www.eetimes.[...]
2022-01-29
[3]
OEIS
A290772
[4]
간행물
Construction of Uniform Gray Codes
[5]
간행물
A Survey of Combinatorial Gray Codes
http://www4.ncsu.edu[...]
Society for Industrial and Applied Mathematics
1997-01-01
[6]
웹사이트
'single track gray code' sought for encoding 360 degrees with 9 sensors
https://www.experts-[...]
2008-07-25
[7]
웹사이트
9-Bit Absolute Singletrack Gray Code Rotary Encoder
https://www.thingive[...]
[8]
특허
Pulse code communication
1953-03-17
[9]
특허
Encoding Circuit
1956-01-31
[10]
특허
Direction-Sensitive Binary Code Position Control System
1958-02-11
[11]
웹사이트
グレイコードと実数 立木秀樹
http://www.i.h.kyoto[...]
[12]
서적
컴퓨터 구조
이한출판사
[13]
웹사이트
The Aggregate Magic Algorithms: Gray Code Conversion
http://aggregate.org[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
