代码:
#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-1printf("%d",a[i]);}
运行结果: