思路:如十进制转二进制
就是不断除二求余在除二求余,然后将余数从下到写出来,这样,10011100就是156的二进制
这里举例一个六进制的代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>int main()
{int n = 0;int arr[40] = { 0 };scanf("%d", &n);int i = 0;while (n){arr[i] = n % 6;//6进制,%6/6,参考10进制转2进制i++;n = n / 6;}for (i--; i >= 0; i--)//i进去就减1,因为要打印下标,从最后下标逆序打印{printf("%d", arr[i]);}return 0;
}
如此,我们就能类推出10进制转任意位的代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>int main()
{int n = 0;int arr[40] = { 0 };scanf("%d", &n);int i = 0;while (n){arr[i] = n % k;//k是要转的进制i++;n = n / k;}for (i--; i >= 0; i--)//i进去就减1,因为要打印下标,从最后下标逆序打印{printf("%d", arr[i]);}return 0;
}