我发现以下代码能够将int64_t转换为网络字节顺序。现在,我需要相反的代码,以便将网络字节顺序转换回我的小端机器。代码是这样的。
int64_t decode(void* value){
int64_t vv = *((int64_t*) value);
int num = 42;
if(*(char *)&num == 42) //test big/little endian
return (((uint64)htonl(vv)) << 32) + htonl(vv >> 32);
else
return vv;
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!