二进制文件解释

Rob*_*ert 0 c++ binary

我正在阅读二进制文件(在c ++中).标题是这样的(以十六进制打印)

43 27 41 1A 00 00 00 00 23 00 00 00 00 00 00 00 04 63 68 72 31 FFFFFFB4 01 00 00 04 63 68 72 32 FFFFFFEE FFFFFFB7

打印时使用:

std::cout << hex << (int)mem[c];
Run Code Online (Sandbox Code Playgroud)

是否有一种有效的方法来存储23哪个是9th字节(?)而不使用stringstream?或者是stringstream最好的方式?

就像是

int n= mem[8]
Run Code Online (Sandbox Code Playgroud)

我想存储23n35.

Dav*_*rtz 5

你确实存了23个n.您只能看到,35因为您正在使用例程将其转换为十进制显示.如果你可以查看计算机内部的二进制数据,你会发现它实际上是一个十六进制23.

您将得到与您相同的结果:

 int n=0x23;
Run Code Online (Sandbox Code Playgroud)

(什么,你可能会认为你想是不可能的.应该存放在什么号码n1E?唯一对应的号码是31,这是你做了什么.)