1、
c语言中,计算机以不同的前缀表示计算机采用哪种进制的数显示数值。
0表示8进制数的前缀。
0x和0X都表示16进制数的前缀。
比如十进制数16使用8进制数表示是020。(2乘以8的1次方)。
十进制数16使用16进制数表示是0x10。(1乘以16的1次方)。
在程序中,8进制数的转换说明是%#o, 16进制数的转换说明是%#x或者%#X。
测试程序如下:
#include <stdio.h> int main(void) { int num = 16; printf("decimal: %d. ", num); printf("octal: %#o. ", num); printf("hexa: %#x. ", num); printf("hexa: %#X. ", num); return 0; }
2、在显示8进制和16进制数的时候,也可以不加进制说明的前缀, 比如省略8进制的前缀0,16进制的前置0x;
#include <stdio.h> int main(void) { int x = 100; printf("dec = %d; octal = %o; hex = %x; ", x, x, x); //no prefix printf("dec = %d; octal = %#o; hex = %#x ", x, x, x); return 0; }