c中输入一个十进制数,输出它的八进制二进制以及十六进制
·
代码:
#include <stdio.h>
int main()
{ int i;
scanf("%d",&i);
printf("八进制为:%o\n",i);
printf("十六进制为:%x\n",i);
printf("十六进制为:%X\n",i);
return 0;
}
可以看出来,16进制小写‘x’输出的字母就是小写的,大写‘X’输出的字母就是大写的
想要以16进制或者8进制输入时:
以16进制为例,将输入语句改为:
scanf("%x",&i);
b:二进制
o:八进制
d:十进制
x,X:16进制
程序里是体现不出二进制的哦!
下面两种转换方法
递归转换进制(int型)
#include<stdio.h>
int fact(int n)
{ if(n<2) //将 2 换成其它数如 8 就可输出 8 进制的结果
return n;
else
{ return fact(n/2)*10+n%2; //将二进制结果整个输出
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",fact(n));
return 0;
}
循环:
#include<stdio.h>
main()
{
int k,a[101],i=0;
printf("请你输入一个十进制整数\n");
scanf("%d",&k);
while (k>0)
{
a[i]=k%2;
k/=2;
i++;
}
for(i=i-1;i>=0;i--) //i=i-1 的原因 ,条件k>0为假结束循环,但i++已经运行了,所以 i=i-1
printf("%d",a[i]);
}
运行结果:
更多推荐
已为社区贡献8条内容
所有评论(0)