代码:

#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]);
}

运行结果:
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐