编写进制转换函数itos(int n,int k,char* s),将一个十进制整数转换成k进制字符,c语言,用指针,并输出
时间: 2023-12-14 15:35:40 浏览: 104
这是个用C写的进制转换程序,用于输出显示十进制
以下是一个十进制转k进制的函数,其中n为十进制整数,k为进制数,s为存储转换结果的字符数组:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *s) {
int len = strlen(s);
for(int i=0; i<len/2; i++) {
char tmp = s[i];
s[i] = s[len-i-1];
s[len-i-1] = tmp;
}
}
void itos(int n, int k, char *s) {
int i = 0;
do {
int digit = n % k;
s[i++] = (digit < 10) ? digit + '0' : digit - 10 + 'A';
n /= k;
} while(n != 0);
s[i] = '\0';
reverse(s);
}
int main() {
int n = 123456;
int k = 16;
char s[100];
itos(n, k, s);
printf("%d in base %d is %s\n", n, k, s);
return 0;
}
```
这个函数的原理是不断将十进制数除以k,每次取余数作为k进制数的一位,直到十进制数变成0。然后将得到的k进制数的每一位转换成相应的字符,存储到字符数组中,并将数组反转,得到最终的k进制数。
阅读全文