C++字节数组到整数
C++ byte array to int
现在有一个unsigned char bytes[4]
,我已经知道字节数组是从C++中的int
生成的。如何将数组转换回int
?
您可以使用std::memcpy()
来执行此操作:
#include <iostream>
#include <cstring>
int main() {
unsigned char bytes[4]{ 0xdd, 0xcc, 0xbb, 0xaa };
int value;
std::memcpy(&value, bytes, sizeof(int));
std::cout << std::hex << value << 'n';
}
我已经
知道字节数组是从 C++ 中的 int 生成的。
了解数组是如何从 int 生成的至关重要。如果数组是通过简单地复制同一 CPU 上的字节生成的,那么您只需复制即可转换回来:
int value;
assert(sizeof value == sizeof bytes);
std::memcpy(&value, bytes, sizeof bytes);
但是,如果数组可能遵循 CPU 使用的其他表示形式(例如,如果您通过网络从另一台计算机接收阵列(,则必须转换表示形式。为了转换制图表达,您必须知道源数据遵循什么表示。
从理论上讲,您需要处理不同的符号表示,但在实践中,2 的补码相当普遍。在实践中实际相关的考虑因素是字节字节序。
相关文章:
- 从二进制文件中读取整数数组
- 新的整数数组向右移动?
- C++ 中的二维整数数组,每行中的元素数量不均匀
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- 从两个 4x64 位整数数组中获取取模
- 字符到整数数组
- 从函数参数 [C++] 复制整数数组
- 指向整数数组和打印总和的指针
- 使用可变参数函数将整数和/或整数数组放入单个 int 数组中
- 线程安全整数数组?
- 整数数组中最长的回文
- 在大整数数组中查找子数组
- 查找整数数组中最接近的数字
- 创建<int>对整数数组指针的矢量引用 (C++)
- 整数指针数组的元素是否可以指向整数数组?
- 如何将整数数组相乘得到一个数字?
- 当 map 是一个整数数组并且由 operator[] 创建时,它是否初始化其映射类型
- 将文本文件读入整数数组