printf如何以八进制、十六进制的形式输出?
d 是 decimal 的首字母,%d 表示以十进制形式输出。
那么,octal 是八进制的意思,%o 是不是以八进制形式输出呢?hexadecimal 是十六进制的意思,%h 是不是十六进制输出呢?
猜对了一半!
%o 确实表示八进制输出,但是%h 什么也不是,%x 才表示十六进制输出形式。请看下面的例子:
decimal: 1234
octal: 20100144
hexadecimal: 4011ab
那么,octal 是八进制的意思,%o 是不是以八进制形式输出呢?hexadecimal 是十六进制的意思,%h 是不是十六进制输出呢?
猜对了一半!
%o 确实表示八进制输出,但是%h 什么也不是,%x 才表示十六进制输出形式。请看下面的例子:
#include <stdio.h> int main() { int a=1234; printf("decimal: %d \noctal: %o \nhexadecimal: %x\n", 1234, "Think you"); return 0; }运行结果:
decimal: 1234
octal: 20100144
hexadecimal: 4011ab