c语言实现二进制八进制十进制和十六进制的相互转化
十进制转其他进制
(该程序以十转二为例)
#include<stdio.h>
void change(int n)
{
if (n > 0)
{
change(n / 2);
printf("%d", n % 2);
}
}
int main()
{
int n;
scanf("%d", &n);
change(n);
return 0;
}
其他进制转十进制
二进制转十进制
int main()
{
int d = 0;
char ch = { 0 };
while (ch = getchar(), ch != '\n')
{
d = d * 2 + ch - '0';
}
printf("%d", d);
return 0;
}
八进制转十进制
八进制转十进制与二进制转十进制类似 只需更改一行代码 d=d*8+ch’0’;
十六进制转十进制
#include<stdio.h>
int tran(char ch)
{
if (ch >= '0' && ch <= '9')
return ch - '0';
else if (ch >= 'A' && ch <= 'F')
return 10 + ch - 'A';
else
return 10 + ch - 'a';
}
int main()
{
int d = 0;
char ch = { 0 };
while (ch = getchar(), ch != '\n')
{
d = d * 16 + tran(ch);
}
printf("%d", d);
return 0;
}
|