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!
请按任意键继续. . .
思路:利用数组存储各个位的值,再利用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!
请按任意键继续. . .
相关文章推荐
- 面试的时候要求写个程序:任意进制数(2-16之间的进制)转换
- PAT程序能力考题——甲级1010(比较任意进制转换的两个数字,是否相等)
- 题目:使用命令行参数编写一个程序,其功能是将任意一个正整数m变换为指定的n 进制数串输出。命令行的格式为:
- 然后程序输出它对应的2进制数 c语言程序:任意输入一个10进制数(小于255)
- 十进制任意整数类型向常见数值类型进制转换的通用办法
- 【笔记】【C语言】任意进制之间的转换(支持小数部分)
- C++ 十进制'纯'小数转换为任意进制的小数
- 十进制转换为任意进制
- 将任意进制字符串转换为指定进制输出
- 任意十六进制数转换成十进制数----不管你输入多长都能转换
- 任意十六进制数转换成十进制数----不管你输入多长都能转换
- 任意进制转换--(62进制)
- 二进制与任意字符转换程序代码
- 任意进制转换的递归实现
- 转帖:c#任意进制转换(2-36进制之间的转换)
- 任意十六进制数转换成十进制数----不管你输入多长都能转换
- 用"指定字符组成的任意进制"转换生成不带4的卡号
- 任意进制相互转换
- 将任意二进制转换成十进制
- 写了一个10进制转换程序,无意发现JAVA int 类型的范围原来是这个!