我得到一个19位数字(64位和总共19位数字)并且必须将其转换为2 32位int。
2 32位必须能够转换回19位数字。
有人有想法吗?
答案 0 :(得分:1)
你可以通过转移来实现:
#include "stdio.h"
uint64_t bigNum = 5678216589648569852;
uint64_t merged = 0;
uint32_t partA = 0;
uint32_t partB = 0;
//split
partA |= bigNum;
partB |= bigNum >> 32;
//merge
merged = partB;
merged <<= 32;
merged |= partA;