将 std::string 重新解释为无符号的 int 数组
Reinterpreting std::string to unsigned int array
我想在C(ARM平台(中实现类似的东西:
char a[] = {0xAA, 0xBB, 0xCC, 0xDD, 0x11, 0x22, 0x33, 0x44};
uint32_t *aUint = (uint32_t *)a;
然后我可以使用:
printf("%X", aUint[1]);
结果将是:
0x11223344
现在我想在C++中做同样的事情,但是当我尝试做这样的事情时(假设字符串长度 % 4 == 0(:
std::string str("some human readable ");
uint32_t *dataByWord = reinterpret_cast<uint32_t>(&str);
我得到输出:
error: cast from ‘const std::__cxx11::basic_string<char>*’ to ‘uint32_t {aka unsigned int}’ loses precision [-fpermissive]
有没有办法重新解释输入字符串以避免任何循环或复制?
解决方案:
uint32_t *dataByWord = reinterpret_cast<uint32_t*>(str.c_str());
相关文章:
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- C++:使用没有位移位的指针将无符号字符转换为无符号 int
- 是否可以将无符号 int 的最大值转换为 int 并将结果转换为 -1?
- 为什么QByteArray的大小是"int"而不是"无符号int"
- 无符号长整型和无符号 int 之间有什么区别,这 2 种类型应该如何在 c# 中封送?
- 使用无符号int作为二进制来在c++中实现一个集
- C++如何将变量传递给带有无符号 int & 的参数uint16_t函数?
- 为什么我不能使用在 Visual C++ 32 位中实现运算符无符号 int() 作为数组索引的类?
- 视觉C++转换和写入值为 10 的无符号 int 给出 5 个字节
- uint8_t在转换为无符号 int 时未打印正确的值
- G++ 错误:重载的"abs(无符号 int)"的调用不明确
- 将 3D 矢量浮点打包到无符号 int 中并将其解压缩
- 如何使用 JNI 将 double 和无符号 int 从本机 c 库返回到 java
- 为什么printf和cout为此无符号int提供了不同的输出
- memcpy 从无符号字符 * 到无符号 int
- C++ 重载与有符号和无符号 int 不同
- 创建具有未定义溢出的无符号 int
- 将大双精度转换为无符号 int 期间堆栈损坏
- 错误:成员引用基类型"uint32_t"(也称为"无符号 INT")不是结构或联合
- 无符号int的比较始终是正确的(NPOS问题?)