그레이코드(Gray Code)란?
👉가중치가 없는 코드, 연산에는 적당하지않으나 아날로그-디지털 변환기나 입출력 장치 코드 즉, 1차원적 디지털에서 많이 쓰이는 코드를 의미합니다
👉1비트만 변화하므로 하드웨어적인 오류가 적기 때문에 매우 유용합니다.
2진수를 GRAY 코드로 변환하기
👉 2진수 1 1 1 1
👉<2진수의 0의 자리와 1의 자리의 XOR 연산 발생>
👉 GRAY 코드 1 0 0 0
GRAY 코드를 2진수로 변환하기
👉 GRAY 코드 1 0 0 0
👉 <그대로 내려온 2진수와 1의자리와의 XOR 연산 발생>
👉 2진수 1 1 1 1
문제: 2진수 비트 5개를 입력받아 그레이 코드로 변환하는 알고리즘 작성하기
답안:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int Two[5], Gray[5], count = 0;
printf("변경할 이진수를 입력해주세요:");
for (count = 0; count < 5; count++) {
scanf_s("%d",&Two[count]);
Gray[count] = Two[count];
}
for (int i = 0; i < count - 1; i++) {
if (Two[i] == Two[i + 1]) {
Gray[i + 1] = 0;
}
else {
Gray[i + 1] = 1;
}
}
printf("Gray 코드의 값은 :");
for (int i = 0; i < count; i++) {
printf("%d", Gray[i]);
}
return 0;
}
이상으로 오늘 포스팅을 마치겠습니다 감사합니다!!
C언어에 더 알고 싶다면?
👉C언어 마이크로 소프트 Visual Studio 2019 설치방법은?
👉C언어로 구사하는 알고리즘 1. 날짜값을 넣으면 해당 요일이 나오는 코딩 예제(윤년계산)
👉C언어로 구사하는 알고리즘 2. 형변환 그레이코드를 만드는 알고리즘
'코딩 이야기' 카테고리의 다른 글
[C언어] 정수 오름차순/내림차순을 구현하는 알고리즘(SORT) (0) | 2021.07.13 |
---|---|
[C언어] 성적 석차 구하기 알고리즘 구현하기 (0) | 2021.07.11 |
[C언어] 알고리즘/순서도/프로그래밍 개념/디버깅이란? (0) | 2021.07.07 |
[C언어] 날짜값을 넣으면 해당 요일을 출력하는 코딩예제 (윤년) (0) | 2021.07.04 |
[C언어] 마이크로 소프트 Visual Studio 2019 설치방법 (0) | 2021.07.04 |