C语言提供了三种数值输入类型:8进制 “0” 开头、10进制直接输入数字、16进制 “0X" 开头。为了输出这三种数字格式stdio.h中的printf(标准输出格式)中定义了三种输出方式:8进制 “%o"、10进制 “%d“、16进制“%x"。所以这三种数字格式转换就很方便了看个例子:
1 #include <stdio.h>
2
3 int main(){
4 int num1 = 11; //10进制输入11
5 int num2 = 013; //8进制输入11
6 int num3 = 0xb; //16进制输入11
7
8 printf("num1=%X\n",num1); //16进制输出
9 printf("num2=0%d\n",num2); //10进制输出
10 printf("num3=0x%o\n",num3); //8进制输出
11 if(num1 == num2) //判断不同输入方式数字是否相等
12 printf("num1 = num2\n");
13 if(num1 == num2 && num2 == num3)
14 printf("11 == 013 == 0xb\n");
15
16 }
可以看到以不同的方式输入同一个数结果都是相等的。输出的时候指定输出格式就是了,和输入格式完全无关。
还有最后一个问题2进制问题。C语言没