그레이 코드 변환기 (10진수 ⇄ 2진수 ⇄ 그레이 코드)

10진수·2진수·그레이 코드·16진수·8진수를 서로 이어진 칸에서 함께 변환합니다 — 한 걸음마다 정확히 1비트만 바뀌는 반사 이진 부호이며 XOR로 계산합니다.

계산 과정

그레이 코드 = 2진수 XOR (2진수 >> 1): 각 비트를 바로 왼쪽 비트와 XOR합니다

2진수1011
2진수 >> 10101
XOR = 그레이1110

XOR 진리표

XOR(배타적 논리합)는 두 비트가 다르면 1, 같으면 0입니다.

ABA XOR B
000
011
101
110

여러 개 한 번에 변환

그레이 코드 표 (0–15)

10진수16진수2진수그레이 코드
0000000000
1100010001
2200100011
3300110010
4401000110
5501010111
6601100101
7701110100
8810001100
9910011101
10A10101111
11B10111110
12C11001010
13D11011011
14E11101001
15F11111000

그레이 코드란

그레이 코드(반사 이진 부호)는 인접한 두 값이 정확히 한 비트만 다르도록 2진수를 배열한 방식입니다. 이 단일 비트 변화 특성 덕분에 회전 엔코더, 위치 센서, 상태 기계 등에서 유용합니다. 일반 2진수에서 여러 비트가 동시에 바뀌면 순간적으로 완전히 잘못된 값이 읽힐 수 있기 때문입니다. 2진수를 그레이 코드로 바꾸는 것은 간단한 비트 연산으로, 첫 비트는 그대로 두고 나머지 그레이 비트는 현재 2진 비트와 바로 앞 비트의 XOR입니다. 이는 b XOR (b를 오른쪽으로 1비트 시프트)와 같습니다.

이 변환기 사용법

10진수·2진수·그레이 코드·16진수·8진수 중 어느 칸에 입력해도 나머지 칸이 즉시 갱신됩니다. 그래서 10진수 → 그레이로 바로 변환하거나(엔코더 위치나 교과서 문제가 다루는 방식) 그레이 값을 곧바로 10진수로 디코딩할 수 있습니다. 2진수→그레이는 자리마다 g[i] = b[i-1] XOR b[i]를 적용하고, 그레이→2진수는 누적 XOR로 이를 되돌려 b[i] = b[i-1] XOR g[i]가 됩니다. 2진수와 그레이 코드 칸에는 0과 1만 입력할 수 있으며 다른 문자를 넣으면 명확한 메시지를 표시합니다. 앞자리 0은 유지되므로 8비트 패턴은 8비트 폭 그대로 남습니다.

자주 묻는 질문

2진수를 그레이 코드로 직접 어떻게 변환하나요?

최상위 비트는 그대로 두고, 나머지 각 2진 비트를 바로 왼쪽 비트와 XOR하면 됩니다. 예를 들어 1011은 1110이 됩니다. 앞의 1은 유지되고 1⊕0=1, 0⊕1=1, 1⊕1=0이기 때문입니다. 이 도구가 입력하는 즉시 대신 계산해 줍니다.

그레이 코드를 다시 2진수로 어떻게 변환하나요?

첫 비트는 그대로 복사하고, 이후 각 2진 비트는 앞의 2진 비트와 현재 그레이 비트의 XOR입니다 — 누적 XOR입니다. 따라서 1110은 1011로 디코딩됩니다. 그레이 코드 입력란에 입력하면 2진수 결과가 즉시 나타납니다.

변환 과정을 보거나 목록을 한꺼번에 바꿀 수 있나요?

네. 풀이 표가 내 숫자에 대한 시프트와 XOR를 보여 주고, 목록 칸은 한 줄에 하나씩 넣은 값을 어느 방향으로든 바꾸며, 참고 표에 코드들이 나란히 정리돼 있습니다. 목록 칸은 .txt·.csv·.log 파일을 열고 변환한 결과를 내려받을 수도 있고, 풀이 아래 “XOR 진리표”는 두 비트의 모든 조합에 대한 A XOR B — 두 비트가 다르면 1 — 를 보여 줍니다.

16진수나 8진수로 넣거나, 변환 결과를 링크로 보낼 수 있나요?

네. 그레이 코드 칸 뒤에 16진수와 8진수 칸이 있어 다른 칸처럼 양방향으로 바뀌며, 0x나 0o 접두사는 붙여도 되고 안 붙여도 됩니다. 그 칸이 읽을 수 없는 숫자는 어떤 글자를 받는지 알려 주며 거부합니다. 링크 복사는 숫자, 입력한 칸, 비트 폭을 담아 링크를 열면 같은 변환이 그대로 나옵니다.

텍스트를 바이트마다 그레이 코드로 바꿀 수 있나요?

일부러 텍스트는 받지 않습니다. 그레이 코드는 한 걸음마다 한 비트만 바뀌어야 하는 카운터와 위치 엔코더를 위한 부호라서, 글의 바이트에 적용하면 아무것도 숨기지 못하는, 되돌릴 수 있는 뒤섞기일 뿐입니다. 그래도 해 보고 싶다면 텍스트 → 2진수 변환 도구로 글을 2진수 바이트로 바꾼 뒤, 여기 “여러 개 한 번에 변환”에 한 줄에 한 바이트씩 넣고 “2진수 → 그레이”를 고르세요.