C 反转从二进制文件读取的指针
我试图反转从二进制编码文件读取的一些指针 当我尝试反转以big-endian格式存储的指针0xfffe0024540时,我得到 0xFFFFFF0024540 指针以以下格式存储在文件中:C 反转从二进制文件读取的指针,c,swap,endianness,C,Swap,Endianness,我试图反转从二进制编码文件读取的一些指针 当我尝试反转以big-endian格式存储的指针0xfffe0024540时,我得到 0xFFFFFF0024540 指针以以下格式存储在文件中: 0000 ff0f 02e0 4045负有符号整数右移的行为取决于实现, 就我记忆所及。您应该将long替换为unsigned long或uint64\u t右侧。我切换了语言,但符号扩展似乎确实是根本问题。因此,我尝试用uint64\t替换long,但仍然返回相同的结果。@gary:你能为你的问题添加一个自
0000 ff0f 02e0 4045负有符号整数右移的行为取决于实现,
就我记忆所及。您应该将
long
替换为unsigned long
或uint64\u t
右侧。我切换了语言,但符号扩展似乎确实是根本问题。因此,我尝试用uint64\t替换long,但仍然返回相同的结果。@gary:你能为你的问题添加一个自包含的示例来演示这个问题吗?因为0xFFFFFF0024540
只是0xfffe0024540
的符号扩展,没有任何交换的字节。所以肯定还有另一个问题。。。(顺便说一句,我在Mac电脑上测试了代码,它运行正常。你在什么平台上?)我在linux(OpenSUSE)上运行它@gary:如果没有一个例子,包括printf显示的问题,那么很难帮助。(但现在我住的地方已经很晚了,所以我可能在明天之前不会回复。)