본문 바로가기

Programming/C Programming

AtoH function


리눅스 커널에는 기본적인 함수들이 없다보니 구현해서 쓰게 된다 ;;


static int ishex (char ch) {
 if (((ch>='0') && (ch <='9')) || ((ch>='a') && (ch <='f')) || ((ch >='A') && (ch <='F'))) return 1;
 return 0;
}
static int hex_value (char ch) {
 if ((ch >= '0') && (ch <= '9')) return ch-'0';
 if ((ch >= 'a') && (ch <= 'f')) return ch-'a'+10;
 if ((ch >= 'A') && (ch <= 'F')) return ch-'A'+10;
 printk("[ERR] %s() - wrong hax value \n", __FUNCTION__);
 return 0;
}
static int atoh(char *s , int len) {
 int i=0;
 while (ishex(*s) && len--)
 {
  i = i*0x10 + hex_value(*s);
  s++;
 }
 return i;
}

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

__read_mostly keyword  (0) 2010.06.29
전처리기 사용 : define ##  (0) 2010.02.23
struct 변수 사용 bit 한계 설정하기  (0) 2009.12.02
[TIP] easy mistake casting buffer  (0) 2009.09.21
해더파일을 통한 배열 입력  (2) 2008.11.04