c++ - 我如何表示十六进制数?

标签 c++

我有一个由 4 个十六进制元素组成的数组,我想将这些值表示为一个十六进制数

即:

int arr[4] = {0xD4, 0x9F, 0x2E, 0x4C};   
int result = 0xD49F2E4C;   //The total number

我尝试过字符串连接,但结果不一样

如何做...

最佳答案

尽管您选择在源代码中使用它们的表示法,但它们不是十六进制、十进制或其他任何形式。

它们只是数字

所以,使用您通常用于数字的东西:算术!

考虑一下:

0xD49F2E4C = 0xD4000000 + 0x009F0000 + 0x00002E00 + 0x0000004C

因此,在这种情况下,按位运算符是您的 friend :

int result = arr[0] << 24;
result |= arr[1] << 16;
result |= arr[2] << 8;
result |= arr[3];

不过,您应该将所有这些内容设为无符号,以避免出现意外。在这个特定的实例中,我建议使用 uint32_t,这样您也知道结果变量的大小正确。

关于c++ - 我如何表示十六进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61188243/

相关文章:

c++ - 段错误 C++

c++ - vector 的 reserve() 的奇怪之处

c++ - 如果只将非虚拟、非重载的成员函数添加到类中,是否需要用户重新编译?

c++ - 为什么报错LINK2005 : object already defined error disappears when I declare the object as static

c++ - 如何处理 "class type redefinition"

c++ - 下载文件 c++ linux GCC

c++ - (Qt) 如何在 View 中实现 editorOpened(index) 和 editorClosed(index) 信号

c++ - 在 C++ 中关联 3 个事物的最佳方式

c++ - 字符串声明

c++ - 使用 wstring 获取行读取文件