【发布时间】:2021-08-16 15:58:13
【问题描述】:
我将一个十六进制数传递给一个 unsigned long 类型的函数,假设该数字是 0x5ED3710573047010。当我显示这个数字时,它以十进制而不是十六进制显示。我想知道的是,当将值分配给该变量时,它是在分配给变量时从十六进制转换为十进制还是只是 cout 导致它以十进制格式显示? 另外,如果我想将此十六进制数分成两部分,最好的方法是什么?我是否应该将其转换为字符串并拆分字符串,然后将两个字符串转换回 Int 并将其存储在两个单独的变量中?还是有一些简单快捷的方法?
【问题讨论】:
-
通过
cout转换成十进制。您可以使用std::hex以十六进制打印。 -
这能回答你的问题吗? C++ cout hex values?
-
小心,
long可能是 32 位宽,即使在 64 位系统上(例如使用 MSVC 编译器时)。如果您想要保证 64 位类型(至少)使用long long。或fixed width type,如uint_least64_t -
@churill 有点是的,但请你看看我的问题的第二部分,它涉及将十六进制数分成两部分?
-
@AzeemLodhi 每个问题帖子问一个问题。