我想将 ip-port 对作为搜索键,所以我有以下功能
int64_t make_pair(u_int32_t ip, u_int16_t port)
{
u_int64_t ip_u64 = ip;
ip_u64 = ip_u64 << 16;
int64_t ip_port_pair = (int64_t)(ip_u64 + (u_int64_t)port);
return ip_port_pair;
}
实际上,我想将 u_int64_t 转换为 int64_t 因为无符号整数比较值不方便。但是恐怕从 u_int64_t 到 int64_t 的转换不是一对一的映射,然后会出现一些冲突或搜索错误。
所以我想问一下从 u_int64_t 到 int64_t 的转换是否不是一对一的映射?谢谢!