- /*
- 进制转换,10进制转2-16进制输出
- */
- #include <stdio.h>
- #include <math.h>
- void change(char array[32],int x,int y){
- //定义字符数组用来存放每位有可能的取值范围
- char ch[16] = {'0','1','2','3','4','5','6','7'
- ,'8','9','a','b','c','d','e','f'};
- //定义数组用来临时存放数据 从低位到高位
- char arr[32]= {'0'};
- //记录数组的长度
- int count = 0;
- //从低到高存储每个数据到数组
- for (int i = 0; i < 32; i++) {
- arr[i] = ch[x%y];
- if(x/y !=0){
- x = x/y;
- count++;
- }else
- break;
-
- }
- //逆序数组
- for (int i = count ; i >= 0; i--) {
- array[count - i] = arr[i];
- //printf("%c",arr[i]);
- }
- }
- int main(){
- //定义变量m 要输入的十进制数,n要转换成几进制的数
- int num = 0,in = 0;
- printf("请输入要转换的十进制数,以及要转换的进制:\n");
- scanf("%d%d",&num,&in);
- //定义数组用来存放转换后的数据
- char arr[32] = {'0'};
- //进行转换
- change(arr,num,in);
- printf("%d转换成%d进制是:",num,in);
- //输出结果
- for (int i = 0; i < 32; i++) {
- printf("%c",arr[i]);
- }
- printf("\n");
-
- }
复制代码
|
|