代码如下:
ltoa(): 长整型转字符
void ltoa(long num, char* str, int radix)
{
int i = 0;
int j = 0;
long sum;
unsigned long num1 = num; //如果是负数求补码,必须将他的绝对值放在无符号位中在进行求反码
char str1[33] = { 0 };
if (num<0) { //求出负数的补码
num = -num;
num1 = ~num;
num1 += 1;
}
if (num == 0) {
str1[i] = '0';
i++;
}
while(num1 !=0) { //进行进制运算
sum = num1 % radix;
str1[i] = (sum > 9) ? (sum - 10) + 'a' : sum + '0';
num1 = num1 / radix;
i++;
}
i--;
for (i; i >= 0; i--) { //逆序输出
str[i] = str1[j];
j++;
}
}
itoa(): 整型转字符,仅修改一丢丢即可
void itoa(int num, char* str, int radix)
{
int i = 0;
int j = 0;
int sum;
int num1 = num; //如果是负数求补码,必须将他的绝对值放在无符号位中在进行求反码
char str1[33] = { 0 };
if (num<0) { //求出负数的补码
num = -num;
num1 = ~num;
num1 += 1;
}
if (num == 0) {
str1[i] = '0';
i++;
}
while(num1 !=0) { //进行进制运算
sum = num1 % radix;
str1[i] = (sum > 9) ? (sum - 10) + 'a' : sum + '0';
num1 = num1 / radix;
i++;
}
i--;
for (i; i >= 0; i--) { //逆序输出
str[i] = str1[j];
j++;
}
}