atoi


uint16_t Atoi(unsigned char* str)

{

  uint16_t nSign = 0, nSum = 0;

  

  if(*str == '-' || *str >= '0' && *str <= '9')

  {

    if(*str == '-')

    {

      nSign = 1;

      str++;

    }

    while(*str >= '0' && *str <= '9')

    {

      nSum = (nSum * 10) + (*str - '0');

      str++;

    }

    if(nSign)

      return -nSum;

    else

      return nSum;

  }

  else

    return 0;

}





itoa

unsigned char * Itoa(uint16_t s_value, uint16_t s_radix)

{

    static const char c_base_ascii[] = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 'A', 'B', 'C', 'D', 'E', 'F'};

    static unsigned char s_buffer[ 64 ] = {0, };

    uint16_t s_offset = sizeof(s_buffer) - 1;


    do {

        s_buffer[--s_offset] = c_base_ascii[ s_value % s_radix ];

        s_value /= s_radix; 

    }while(s_value != 0u);


    return((unsigned char *)(&s_buffer[s_offset]));

}

'Development > C/C++' 카테고리의 다른 글

[고급 매크로 표현식]  (0) 2014.04.22
[Static Assert]  (0) 2014.04.16
[scanf에서 공백을 포함한 문자열을 받는 방법]  (0) 2014.02.09
[objdump in linux]  (0) 2014.01.15
[vim에서 hexedit하기, hex비교하기]  (0) 2014.01.15
Posted by cyj4369
,