您的位置:首页 > 其它

C 任意进制转换程序

2016-11-07 21:13 225 查看
题目:编写一程序,实现任意10进制整数转换为任意进制的数

思路:利用数组存储各个位的值,再利用ascll码转换为字符。

程序:

#include<stdio.h>

void to_base_n(int n, int b);

int main()

{

int num, base;

printf("输入整数 和 要转换的进制(输入q退出):");

while (scanf("%d %d", &num, &base) == 2)

{

to_base_n(num, base);

printf("输入整数 和 要转换的进制(输入q退出):");

}

printf("bye!\n");

return 0;

}

void to_base_n(int n, int b)

{

char arr[32];

int i,j;

char temp;

if (n < 0)

{

arr[0] = '-';

n = -n;

}

else

{

arr[0] = ' ';

}

for (i = 1,j=0; n > 0; i++)

{

temp = n%b;

if (temp < 10)

{

arr[i] = temp + '0';

}

else

{

arr[i] = temp + '7';

}

n /= b;

j++;

}

printf("%d进制输出:",b);

putchar(arr[0]);

for (i = j; i >=1; i--)

putchar(arr[i]);

printf("\n");

}

结果:

输入整数 和 要转换的进制(输入q退出):123 2

2进制输出: 1111011

输入整数 和 要转换的进制(输入q退出):213 8

8进制输出: 325

输入整数 和 要转换的进制(输入q退出):213 16

16进制输出: D5

输入整数 和 要转换的进制(输入q退出):q

bye!

请按任意键继续. . .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: