Вы, вероятно, должны использовать 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;