가끔 프로그램을 짜다 보면 16진수 문자열을 2진수 문자열로 바꾸는 문제가 발생한다.
예를 들어 int a = 'F'; 를 '1111' 로 보기를 원하는 것이다.
표준함수들을 이용하면 간단하게 처리 할 수 있지만 가끔 표준함수를 쓸 수 없을 때 아래를 참고하면 유용하게 사용 할 수 있다.
static unsigned long pow(int a, int b) return result; static unsigned long hex2Num(char* str, int num) unsigned long result = 0; result += tmp*pow(16, num-idx-1); //자리수 계산 void main(void) { char a[4] = "ABCD"; unsigned long result = hex2Num(a, 4); char re[4*4+1] = {'0',}; for ( int i = 15; i >= 0 ; i--) re[15-i] = ((result & (0x1 << i))? '1': '0'); printf("%s\n", re); return; |