저번에 코드문제냈었던 숫자 1234 to 문자 "1234" 의
글쓴이: dopesoul / 작성시간: 화, 2005/01/11 - 3:10오후
요즘 한창 printf 함수를 제작하고있는데
n 진법의 format 으로 숫자를 인수로받아서
표준출력(임베디드 시스템이므로 uart 나 lcd 등...)
으로 뿌려주는 부분입니다. 저번에는 문자열을 뒤집는 부분이
마음에 안들었었는데 이러한 방법으로 하니 마음에 드는군요^^
하드웨어에 의존하는 back end 부분은 분리해 두었습니다.
아마 putchar,getchar 등이 될테지요.
임베디드 공부하시고 계시다면 한번쯤 제작하시는것도
공부에 도움이 될것 같네요.
동참하시려면 kldp.net 의 Standard I/O 어쩌구 하는
프로젝트로 휘릭~
char hexcode[16] = "0123456789ABCDEF"; void rprintfnum_(unsigned char base,long n,char numDigits,char padchar) { char *p,buf[32]; unsigned long x; unsigned char count,isSigned; // Convert negative to positive if(n<0) { isSigned = 1; x = -n; } else { isSigned = 0; x = n; } count = (numDigits-1) - (isSigned?1:0); p = buf + sizeof(buf); *--p = '\0'; while(count--) { if(x!=0) { *--p = hexcode[x%base]; x /= base; } else { *--p = padchar; } } if(isSigned == 1) { if(n<0) { *--p = '-'; } else if(n > 0) { *--p = '+'; } else { *--p = ' '; } } count = numDigits; while(count--) { putchar(*p++); } }
Forums: