这是否正确地将两个无符号32位整数组合成C ++中的一个无符号64位整数?

时间:2015-06-09 09:11:40

标签: c++

这是否正确地将两个无符号32位整数组合成C ++中的一个无符号64位整数?

std::uint32_t a = ...
std::uint32_t b = ...
std::uint64_t result = ((std::uint64_t)a << 32) | (std::uint64_t)b) 

此代码是否对&amp;的所有无符号整数值有效? B'

实际上,我想要一个&amp;的所有可能的无符号整数值的唯一结果值。湾目的是保持结果的大小/长度最小(在这种情况下,我们可以将它绑定在64位)。

2 个答案:

答案 0 :(得分:4)

是的,它可以正常运行(如果它们真的没有签名)。

答案 1 :(得分:-4)

另一种方法:

import selenium.webdriver as webdriver

firefox = webdriver.Firefox()
firefox.get("http://www.hltv.org/match/2296366-gplay-gamers2-acer-predator-masters-powered-by-intel")

element = firefox.find_element_by_id("voteteam1")
element.click()

或者更好:

uint32_t a = xxx;
uint32_t b = xxx;
uint64_t result;
uint32_t * p = (uint32_t *)&result;
p[0] = b;
p[1] = a;