写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。
#include<stdio.h> #include<stdlib.h> void itob(int n, char s[],int b)//整数n转换为以b进制的数 { int i = 0; int start = 0; int end = 0; if ((b == 2) || (b == 8))//2进制和8进制 { while (n) { s[i] = n%b + ‘0‘; n = n / b; i++; } } else if (b == 16)//16进制 { while (n) { s[i] = "0123456789abcdef"[n%16]; char*p="0123456789abcdef"; s[i]=p[n%16]; 即*(p+(N%16)) n = n / 16; i++; } } end = i - 1; while (start < end) { char tmp = s[start]; s[start] = s[end]; s[end] = tmp; start++; end--; } s[i] = ‘\0‘; } int main() { char arr[32]; int n = 0; int b = 0; printf("数字:"); scanf("%d", &n); printf("进制:"); scanf("%d", &b); itob(n, arr, b); printf("\n%s\n",arr); system("pause"); return 0; }
时间: 2024-10-08 20:04:16