printf格式化的一个疑问
下面这段代码,我在格式话字串中用了%01x,这个是打印一个16进制数,最多一位是么?(我的说法错在哪里)
- C/C++ code
int main(int argc, char* const argv[]) { char n = 0x80; printf("%01x\n", (unsigned char)n); return 0;}但是实际打印了80
我把格式化字串改成了%0x\n,结果还是不变。
我的目的是想控制打印数字的个数,例如只打印这个数的16进制的一位。我该怎么改代码呢?
[解决办法]
%0mx
多于m位时,按照实际位数显示
少于m位时,补0