我在C中有几个变量:
char* data
指向数据的指针(始终在LE中)int dataStart
-data
从我的整数开始的偏移量int dataLength
-具有整数数据(0<=dataLength<=8
)的字节数int sign
-1
代表正数或-1
代表负数如何在C中将其转换为__int64
(或者我需要其他东西?)值?
我知道整数限制为2^63−1
。
答案 0 :(得分:-1)
int64_t makeint(const char *buff, size_t offset, size_t offsetinint, size_t len, int minus)
{
union
{
int64_t i64;
uint8_t u8[8]
}d64;
offsetinint = offsetinint & 7;
memset(&d64, 0, sizeof(d64));
memcpy(&d64.u8[offsetinint], len > (8 - offsetinint) ? (8 - offsetinint) : len, buff + offset);
d64.i64 *= -1 * !!minus;
return d64.i64;
}