我原以为每个内存地址都包含 1 字节数据。但在下面的代码中,我得到了 4 字节的十六进制值。为什么会发生这样的事?
我知道负面int 报道。
char num = -25;
char *ptr = #
printf("%02X", *ptr);
Run Code Online (Sandbox Code Playgroud)
Output : FFFF FFE7
Expected : E7
编辑:这里的另一个很好的答案: https ://stackoverflow.com/a/8060195/17823490
printf("%02X", *ptr);
Run Code Online (Sandbox Code Playgroud)
*ptr正在转换int并打印为int
您需要使用正确的 printf 格式:
printf("%02hhX", *ptr);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |