二进制文件解释
Binary File interpretation
我正在读取一个二进制文件(在c++中)。标题是这样的(以十六进制打印)
43 27 41 1A 00 00 00 23 00 00 00 00 04 63 68 72 31 ffffff b4 01 00 00 04 68 72 32 ffffff ee ffff b7
打印时使用:
std::cout << hex << (int)mem[c];
有没有一种有效的方法可以在不使用stringstream
的情况下将23
(即9th
字节(?))存储为整数?还是stringstream
是最好的方式?
类似的东西
int n= mem[8]
我想将23
存储在n
中,而不是35
中。
您确实在n
中存储了23。您只能看到35
,因为您使用一个将其转换为十进制显示的例程来输出它。如果你能看看电脑里的二进制数据,你会发现它实际上是一个十六进制23。
你会得到和你一样的结果:
int n=0x23;
(你可能认为你想要的是不可能的。1E
的n
中应该存储什么数字?唯一对应的数字是31,这就是你得到的。)
您的意思是要将该值视为二进制编码的十进制吗?在这种情况下,您可以使用以下方法进行转换:
unsigned char bcd = mem[8];
unsigned char ones = bcd % 16;
unsigned char tens = bcd / 16;
if (ones > 9 || tens > 9) {
// handle error
}
int n = 10*tens + ones;
相关文章:
- 正在读取二进制文件(is_open)
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何从二进制文件中读取字符串
- 保存/加载大量短数组到二进制文件
- 从二进制文件中读取整数数组
- Android 在编译二进制文件时重建静态库
- 在 C++ 中将双精度变量写入二进制文件
- clang 的 libFuzzer 可以在同一二进制文件中测试超过 1 个 API 吗?
- C++:实际上不是从二进制文件中读取
- 如何从二进制文件中的给定符号中获取调用程序图
- 将内部带有矢量的结构保存/读取到二进制文件中
- 编译多个C++文件.调用二进制文件以运行代码
- 如何使用位字段将数据从二进制文件复制到结构中?
- uint8_t同一二进制文件的不同十进制值
- C++单个生成文件多个二进制文件
- 尝试将数字写入二进制文件时引发异常
- C++中读/写二进制文件
- 读取二进制文件并解释为整数
- 二进制文件解释
- 在Qt中读取和解释二进制文件