你问的是“数制”,不是“数值”吧。。数制的话,不能表示的是 二进制数。C语言没有提供输入二进制数的格式控制符,不像10进制、8进制、16进制一样有%d、%o、%x这样的输入控制符。也就是说,你不能直接输入输出二进制数

printf("请输入一个十进制整数.\n");
printf("十进制整数转换为二进制数是:\n");
printf("请输入一个十进制整数:\n");
do //循环,直到a等于0跳出
r=a%2; //求每一次的余数,实际上最后输出的也是这个
printf("十进制整数转换为二进制数是:\n");
#include #include void main(){ int a=98765;//需要转换的数字 int yiwei=0xF;//用以移位的数字 int numbers=0;//记录移位多次 int tmp=0,index=0; char buffer[11]={'0'};// buffer[1]='x';//buffer[2]='0'; buffer[10]='\0';//给最后一个补充\0 do//移位到最后高位都是1,因此最后会是一个负数 { tmp=a&yiwei; //取出四位当做十六进制的一位 tmp>>=numbers*4;//要还原取出来的这个数字,如果不是在低位取得就需要这样操作 if(tmp>=10&&tmp=0) buffer[10-1-index]='0'+tmp; if(yiwei<0); printf("%s\n",buffer);}
C语言中不能用来表示整常数的进制是二进制
在C语言中,就是这么规定的,没有什么太深究的原因
整型常量又称整型数,它有三种不同的表示形式:十进制,八进制,十六进制
十进制直接用整数表示
八进制可以在常熟前加0(零)例如027
十六进制在常数前加0x(零 乘号) 例如 0x27