[Algorithm] 입력받은 그레이코드를 2진수로 변환하기

입력받은 그레이코드를 2진수로 변환하기

그레이 코드를 이진수로 변환할 때는 첫번째 이진수는 그레이 비트를 그대로쓰고, 두번째 이진수 비트부터는 왼쪽에 구해놓은 2진수와 변경할 그레이코드를 XOR연산하여 씁니다.

그레이코드 이진수변환

[C언어] 입력받은 2진수를 그레이코드로 변환하기

 

C언어 / C++ 코드

#include<stdio.h>

main(){
	int i;
	int input[4], cont[4];
	
	printf("그레이코드: ");
	for(int i=0; i<4; i++)
		scanf("%d",&input[i]);
		
	cont[0] = input[0]; //첫번째 이진수는 첫번째 그레이코드를 그대로 쓴다
	
	for(i=0;i<3;i++){
		if(input[i+1]==cont[i]){
			cont[i+1]=0; //이진수 비트와 그레이 비트가 같으면 0
		}else{
			cont[i+1]=1; //이진수 비트와 그레이 비트가 다르면 1

		}
	}
	printf("이진수 : ");
	
	for(int i=0;i<4;i++)
		printf("%d ",cont[i]);
}

그레이코드 이진수변환 결과

 

댓글

Designed by JB FACTORY