gpt4 book ai didi

c++ - 在 C++ 中将字节数组转换为 unsigned long

转载 作者:行者123 更新时间:2023-12-01 14:38:05 25 4
gpt4 key购买 nike

我正在从文件中读取二进制数据:

char* buffIn = new char[8];
ifstream inFile(path, ifstream::binary);
inFile.read(buffIn, 8);

然后我想将读入的 char*(二进制)转换为 unsigned long 但我遇到了问题 - 我不太确定发生了什么,但是例如 0x00000000000ACD 被解释为 0xFFFFFFFFFFFFCD - 我怀疑所有从 char* 转换为 unsigned long 时,0x00 字节会导致某种问题...

unsigned long number = *(buffIn);

如何正确执行此操作?

最佳答案

由于 buffInchar 指针类型,当您执行 *(buffIn) 时,您只是获取一个字符。您必须将内存地址重新解释为 unsigned long 指针,然后取消引用它。

unsigned long number = *((unsigned long*)buffIn);

关于c++ - 在 C++ 中将字节数组转换为 unsigned long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22029124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com