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 |