itoa代码的实现
#include<stdio.h>
#include<assert.h>
value整型 以 radix 进制 做转换,转换结果保存到buffer数组
char* my_itoa(int value, char* arr, int radix)
{
assert(value != 0);
char index[] = { "0123456789ABCDEF" };
int flag = value < 0 && radix == 10 ? 1 : 0;
if (flag == 0)
{
arr[0] = '-';
value * -1;
}
unsigned int value_temp = (unsigned int)value;
int i= flag;
for (; value_temp != 0; i++)
{
arr[i] = index[value_temp % radix];
value_temp = value_temp / radix;
}
arr[i] = '\0';
int temp = 0;
for (int j = 0; j <= (i - 1) / 2; j++)
{
temp = arr[j+flag];
arr[j+flag] = arr[i - 1 - j];
arr[i - 1 - j] = temp;
}
return arr;
}
int main()
{
char buffer[256] = {};
char * res = my_itoa(-1,buffer,2); //1111 1111
printf("%s\n",res);
return 0;
}