将 int 转换为 char 数组的最佳方法
Optimal way to convert an int into a char array
将
int
放入char
数组的最佳方法(性能)是什么?这是我当前的代码:
data[0] = length & 0xff;
data[1] = (length >> 8) & 0xff;
data[2] = (length >> 16) & 0xff;
data[3] = (length >> 24) & 0xff;
data
是一个char
数组(共享 PTR),length
是int
。
你在寻找memcpy
吗char x[20];
int a;
memcpy(&a,x,sizeof(int));
您的解决方案也很好,因为它是字节序安全的。
附带说明:-
尽管没有这样的保证sizeof(int)==4
任何特定的实现。
只需使用 reinterpret_cast
.像使用 int 指针一样使用数据数组。
char data[sizeof(int)];
*reinterpret_cast<int*>(data) = length;
顺便说一句,memcpy
比这慢得多,因为它使用循环逐字节复制。
在整数的情况下,这只是一个简单的赋值。
这是
唯一的方法。从理论上讲,您可以使用memcpy
或reinterpret_cast
但由于字节序的问题,您不能使用。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 检测win32服务创建和删除的最佳方法
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 将线程中的数据存储到全局容器的最佳方法?
- 将一系列整数放入类的最佳方法是什么?
- 在派生类中使用基类的私有成员变量的最佳方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 在nodejs中使用本机代码的最佳方法是什么?
- 将 pybind11 绑定标记为已弃用的最佳方法
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- C++中变量混叠的最佳方法
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?