티스토리 뷰

반응형

C언어 # 2진수를 10진수로 변환하기

모든 강의 자료 : www.codingnow.co.kr/

동영상 강의입니다.

www.codingnow.co.kr/c/?bmode=view&idx=5801687&back_url=&t=board&page=

 

3. 10진수를 2진수로 출력 : C언어 무료 강의

 

www.codingnow.co.kr

 

2진수를 입력받아

10진수로 변환하는

소스를 구현해 봅니다.

2진수를 문자열로 받아옵니다.

char input[100];	
printf("\n2진수를 입력하세요 : ");
scanf("%s",&input);

문자열로 받아온 값을

정수로 변환합니다.

2진수는 0과1로

구성되기 때문에

입력문자열을

'0'과 '1' 로 제한합니다.

또한 문자열의 0의 아스키 코드값은 0x30

문자열의 1의 아스키 코드값은 0x31 입니다.

아스키값을 정수로 변경하려면

0x30을 빼줘도 되고 '0' 빼줘도 됩니다.

int cnt = 0;
int length = 0;
char value[100];
while(input[cnt] != 0 && cnt<100)
{
  if(input[cnt] >= '0' && input[cnt] <= '1')
  {
    value[cnt] = input[cnt] - '0';
    length++;
  }		
  cnt++;
}

문자열이 정수로

잘 변환되었는지

출력을 해봅니다.

printf("\n2진수 %d자리가 입력되었습니다.\n",length);
printf("입력받은 2진수는 : ");
for(int i=0; i<length; i++)
{
	printf("%d",value[i]);
}
printf(" 입니다. \n\n");

0,1로 구성된 2진수를

10진수로 변환합니다.

2진수는 2의 n승으로

구성되므로

2의 n승을 구해 처리해도 되고

쉬프트 연산을 사용해도 됩니다.

int result = 0;	
if(length > 0)
{			
  for(int i=0; i<(length); i++)
  {
    if(value[i] == 1)
    {				
    	result += (1<<((length-1) - i));
    }
  }
}

printf문을 이용하여

결과를 출력합니다.

printf("2진수를 10진수로(16진수) 변환한 결과값 : %d(0x%X)",result,result);

전체소스입니다.

#include <stdio.h>

int main()
{
  char input[100];	
  printf("\n2진수를 입력하세요 : ");
  scanf("%s",&input);

  int cnt = 0;
  int length = 0;
  char value[100];
  while(input[cnt] != 0 && cnt<100)
  {
    if(input[cnt] >= '0' && input[cnt] <= '1')
    {
      value[cnt] = input[cnt] - '0';
      length++;
    }

    cnt++;
  }

  printf("\n2진수 %d자리가 입력되었습니다.\n",length);
  printf("입력받은 2진수는 : ");
  for(int i=0; i<length; i++)
  {
  	printf("%d",value[i]);
  }
  printf(" 입니다. \n\n");

  int result = 0;	
  if(length > 0)
  {			
    for(int i=0; i<(length); i++)
    {
      if(value[i] == 1)
      {				
      	result += (1<<((length-1) - i));
      }
    }
  }

  printf("2진수를 10진수로(16진수) 변환한 결과값 : %d(0x%X)",result,result);

  return 0;	
}

 

 

실무 사용 예제 강의입니다.

https://cflab2017.tistory.com/115

 

(프로그래밍 언어 실무편) #16진수와 bit 연산 왜 배우죠?? #python GUI를 활용하여#아두이노 #LED 제어

다른 강의자료는 www.codingnow.co.kr/ 여기를 참고해주세요.!! 코딩나우 프로그래밍 교육및 개발의뢰 받습니다. www.codingnow.co.kr youtu.be/77c63HTfcUo C언어와 파이썬을 같이 사용하여 간단한 프로젝트를..

cflab2017.tistory.com

 

반응형