我正在打印这样的三个字节的数组:
cmd_buf 被作为 const char *
for (ii = 0; ii<=2; ii++) {
printf("byte[%0d] = %02x\n", ii, cmd_buf[ii]);
}
Run Code Online (Sandbox Code Playgroud)
但我看到的是:
# BUFFER IS b4a602
# byte[0] = ffffffb4
# byte[1] = ffffffa6
# byte[2] = 02
Run Code Online (Sandbox Code Playgroud)
如果我这样做,它可以正常工作:
printf("byte[%0d] = %02x\n", ii, (unsigned char) cmd_buf[ii]);
Run Code Online (Sandbox Code Playgroud)
不%02x应该只打印两个字符吗?为什么它表现得像一个有符号的值?