在示例c ++代码中,我将打开一个文件并打印六进制文件中的每个字符只有16个字符,但为什么ffffff会在每个heax值后打印?
char buff[256];
// buff filled with fread
for(i=0;i<16;i++)
printf("%x",buff[i]);
Run Code Online (Sandbox Code Playgroud)
输出是:
4affffff67ffffffcdffffff
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
Ale*_*x F 12
编辑:
printf("%x", (int)(*(unsigned char*)(&buff[i])) );
这应该成功.我的第一个版本不对,抱歉.问题在于符号位:超过127的每个值都被处理为负数.转换为unsigned char应该可以解决问题.
| 归档时间: |
|
| 查看次数: |
10799 次 |
| 最近记录: |