[Algorithm] 입력받은 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]==input[i+1]){
			cont[i+1]=0; //xor계산후 같으면 0
		}else{
			cont[i+1]=1; //xor계산후 다르면 1

		}
	}
	printf("그레이코드 : ");
	
	for(int i=0;i<4;i++)
		printf("%d ",cont[i]);
}

결과

 

댓글

Designed by JB FACTORY