gpt4 book ai didi

c++ - 在 C++ 中将 8 字节数组转换为有符号长整数

转载 作者:太空狗 更新时间:2023-10-29 23:37:51 24 4
gpt4 key购买 nike

我有一个 8 字节的数组,我正在尝试将其转换为 C++ 中的有符号长整数,但似乎无法弄清楚。据我所知,long ints 只有 4 个字节,有人可以提供一些相关信息吗?它是 32 位还是 64 位重要吗?

最佳答案

您可能应该使用 int64_t保证长度为 8 个字节。

您没有说明数据在数组中的表示方式(字节顺序),但您可以使用 reinterpret_cast<>甚至更好:使用移位操作来“构建”您的整数。

类似于:

unsigned char array[8] = { /* Some values here */ };
uint64_t value =
static_cast<uint64_t>(array[0]) |
static_cast<uint64_t>(array[1]) << 8 |
static_cast<uint64_t>(array[2]) << 16 |
static_cast<uint64_t>(array[3]) << 24 |
static_cast<uint64_t>(array[4]) << 32 |
static_cast<uint64_t>(array[5]) << 40 |
static_cast<uint64_t>(array[6]) << 48 |
static_cast<uint64_t>(array[7]) << 56;

关于c++ - 在 C++ 中将 8 字节数组转换为有符号长整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4142251/

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