在 C++ 中拆分 Unsigned Long

Splitting an Unsigned Long in C++

我有一个十六进制数 0x5ED3710573047010,我想将其分成两部分 equally.Should 我将其转换为字符串并拆分字符串,然后将这两个字符串转换回 Int 并将其存储在两个单独的变量中?或者有一些简单快捷的方法可以使用某种位移或数学来完成吗?

您可以使用掩码和位操作。

unsigned int first_half = (my_long & 0xffffffff00000000) >> 32;
unsigned int second_half = my_long & 0x00000000ffffffff;