Vintion's blog

~夜黑路滑,社会复杂~

Itoa

| Comments

ITOA

一个很实现十进制整数转变成任意2-16进制字符串的代码,写得短小精练,原作者确实厉害,叹服

code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
char *my_itoa(int value, int radix) {
  static char buf[32] = {0};
  int i = 30;
  for(;value&&(i>=0);--i,value/=radix) {
      buf[i] = "0123456789abcdef"[value%radix];
  }
  return &buf[i+1];
}
int main()
{
    int val, radix;
    while(~scanf("%d %d",&val,&radix))
        printf("%s\n",my_itoa(val,radix));
    return 0;
}

仔细体会一下, enjoy coding…

Comments