Programming Language/C2010. 10. 14. 19:31

1.cpp

16진수를 입력받아 10진수로 출력시키는 예제를 구현하였습니다.
아스키 코드표를 보며 소스의 value=value-'0'; 이 어떤 역할을 하는지 생각해보시기 바랍니다.


/*
실습1. 16진법수를 입력으로 받아서 10진법 수로 만들어서 출력시켜주는 프로그램을 짜시오.

  -입력은 getchar() 사용할것.
  -입력의 끝은 '\n'
  -16진법이외의 수가 입력되었을때는 error처리할것.(0~9,A~F만 사용)
  -출력은 printf("%d\n",value);
          printf("%ld\n",value);
  -반드시 단순변수 사용할 것.
     
*/

#include<stdio.h>
#include<stdlib.h>

int main(void){
 int value;    
 int i=0;
 int ox=0;

 printf("16진수값을 입력하세요. : ");

 
 while (( value=getchar()) !='\n'){    //ASCII값으로 value의 한문자 씩 가져옴.

  if(value >= '0' && value <= '9')   //0부터 9의 숫자부분.
   value=value-'0';      //getchar()를 사용 입력된 아스키 값을 숫자로 바꾸어주는 과정. 
  else if(value >= 'A' && value <= 'F')  //10부터 15까지의 알파벳 대문자 부분.
   value=value-55;
  else if(value >= 'a' && value <= 'f')  //10부터 15까지 알파벳 소문자 부분.
   value=value-'a'+10;
  else {          //16진법 외의 수가 입력되었을때는 error처리고 강제종료시킴.
   printf("incorrect number\n");
   exit(1);        //#include<stdlib.h>
  }
  //실수한 부분.
//  ox=+value;
//  ox=16*ox;

  ox= ox*16+value;       

  

 }

 printf("10진수로변환하면 %d입니다. \n",ox);
 return 0;
}

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'Programming Language > C' 카테고리의 다른 글

C Tutorial (역순화 문자열)  (0) 2010.10.14
C Tutorial (문자열크기비교)  (0) 2010.10.14
C Tutorial (실수형to문자열)  (0) 2010.10.14
C Tutorial (문자열to실수형)  (0) 2010.10.14
C Tutorial (비트단위 내부표현)  (0) 2010.10.14
Posted by BLUE-NOTE