itoa function

  1. #include <iostream>
  2. #include <assert.h>
  3. using namespace std;
  4. typedef long long ll;
  5. char * itoa(int value,char *buf,int radix) {
  6. ll nvalue = value;
  7. int sign=0;
  8. if(value < 0) {
  9. sign = 1;
  10. nvalue = -value;  //avoid overflow
  11. }
  12. int i=0;
  13. assert(buf!=NULL);
  14. while(value!=0){
  15. int digval = value%radix;
  16.   value /= radix;
  17. if(digval>=10) 
  18. buf[i++] = digval-10+'a';//多个十位的数字
  19. else 
  20. buf[i++] = digval+'0';
  21. }
  22. buf[i]='\0';
  23. int j=i-1;
  24. i=0;
  25. while(i<j) {  //反向
  26.   int tmp = buf[i];
  27.   buf[i] = buf[j];
  28.   buf[j] = tmp;
  29. i++;
  30. j--;
  31. }
  32. return buf;
  33. }
  34. int main(){
  35. char res[20];
  36. itoa(123456,res,16);
  37. cout<<res<<endl;
  38. return 0;
  39. }
posted @ 2014-08-20 18:10  purejade  阅读(102)  评论(0)    收藏  举报