将10进制整数转换任意进制输出
2017-11-26 22:25
357 查看
//10进制转换为2/8/16进制的算法就是10进制整数先对相应的进制取余,然后将余数逆序输出。
#include <stdio.h>
#include <string.h>
void hex(char str[],int num,int n)
{
int i = 0;
while(num != 0)
//判断输入的整数是否为0;非0进行循环;
{
str[i] = num % n;
//对输入的整数要转化的进制取余;
if(str[i] <= 9)
//判断余数是否大于9;若大于9则为16进制,进入switch语句;否则为2进制或者8进制;
{
str[i] = str[i] ;
}
else
{
switch(str[i])
//相应的16进制转换;
{
case 10 : str[i]=A;break;
case 11 : str[i]=B;break;
case 12 : str[i]=C;break;
case 13 : str[i]=D;break;
case 14 : str[i]=E;break;
case 15 : str[i]=F;break;
default : break;
}
}
i++; //计算转换后进制的长度;
num = num / n;
}
str[i] = 0;
//当输入的整数为0;
}
void reverse(char p[])
{
int i = 0;
int len = 0;
char temp = 0;
len = strlen(p);
//计算进制转换后长度;
for(i = 0; i < len / 2; i++)
//转换顺序;
{
temp = p[i];
p[i] = p[len - 1 - i];
p[len - 1 -i] = temp;
}
}
int main()
{
int num = 0;
int n = 0;
char s[100] = {0};
printf("please input (整数和进制,以空格间隔开):\n");
//输入整数以及所要转换的进制;
scanf("%d %d",&num,&n);
hex(s,num,n);
//调用取余函数;转化成相应的进制;
reverse(s);
//调用逆序函数;
printf("%d\n",s);
//打印最后得到的结果;
return 0;
}
#include <stdio.h>
#include <string.h>
void hex(char str[],int num,int n)
{
int i = 0;
while(num != 0)
//判断输入的整数是否为0;非0进行循环;
{
str[i] = num % n;
//对输入的整数要转化的进制取余;
if(str[i] <= 9)
//判断余数是否大于9;若大于9则为16进制,进入switch语句;否则为2进制或者8进制;
{
str[i] = str[i] ;
}
else
{
switch(str[i])
//相应的16进制转换;
{
case 10 : str[i]=A;break;
case 11 : str[i]=B;break;
case 12 : str[i]=C;break;
case 13 : str[i]=D;break;
case 14 : str[i]=E;break;
case 15 : str[i]=F;break;
default : break;
}
}
i++; //计算转换后进制的长度;
num = num / n;
}
str[i] = 0;
//当输入的整数为0;
}
void reverse(char p[])
{
int i = 0;
int len = 0;
char temp = 0;
len = strlen(p);
//计算进制转换后长度;
for(i = 0; i < len / 2; i++)
//转换顺序;
{
temp = p[i];
p[i] = p[len - 1 - i];
p[len - 1 -i] = temp;
}
}
int main()
{
int num = 0;
int n = 0;
char s[100] = {0};
printf("please input (整数和进制,以空格间隔开):\n");
//输入整数以及所要转换的进制;
scanf("%d %d",&num,&n);
hex(s,num,n);
//调用取余函数;转化成相应的进制;
reverse(s);
//调用逆序函数;
printf("%d\n",s);
//打印最后得到的结果;
return 0;
}
相关文章推荐
- 设计算法把一个十进制的整数转换成二至九进制之间的任意进制输出
- 将任意进制(2~36)的数转换为10进制,参数k=16就是16进制转10进制
- 4.2题目: 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 将10进制整数i 转换为d 进制数表示
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 习题 7.17 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
- python 十进制整数转换为任意进制(36以内)
- 用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
- 任意进制到10进制的转换
- n进制小数 将任意十进制正小数分别转换成2,3,4,5,6,7,8,9进制正小数,小数点后保留8位,并输出。
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 把十进制整数转换为r(r=2)进制输出(顺序栈实现)
- c++十进制int型整数转换成计算机中存储的任意进制
- 转换成任意[2, 36]进制的字符串输出
- 任意进制整数之间的相互转换(C++实现)
- 2.写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 设计算法,把十进制整数转换为二至九进制之间的任一进制输出。
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出