在c++中将二进制Char数组转换为整数和双精度数组
Convert binary Char array to integer and double arrays in C++
我有一个包含二进制格式的数字的字符数组。数字的格式有:整型、整型和双精度型。什么是最好的和最快的方式来转换字符数组到整数数组和双数组在c++ ?现在我正在使用下面的代码,它的工作很好,但我认为它是不够有效!
#define SIZE 5000
char chBuf[SIZE]; // contains double numbers in binary format
char dBuf[sizeof(double)];
char IBuf[sizeof(int)];
int count =0;
for (int i=0; i<numberofdata; i++)
{
for (int j=0; j<4; j++) IBuf[j] = chBuf[j + count];
Integer[i] = *(integer*) (IBuf);
count += sizeof(integer);
for (int j=0; j<4; j++) IBuf[j] = chBuf[j + count];
Integer[i+1] = *(integer*) (IBuf);
count += sizeof(integer);
for (int j=0; j<8; j++) dBuf[j] = chBuf[j + count];
Double[i] = *(double*) (dBuf);
count += sizeof(double);
}
我认为复制部分的dBuf[]和IBuf[]不应该是必要的,但我不知道如何摆脱他们。
无需将数据复制到单独的缓冲区。另外,您需要注意不要覆盖您的Integer
值。
int s = 2 * sizeof(int) + sizeof(double);
for (int i = 0; i < numberofdata; i++) {
Integer[2 * i] = *(int*) (chBuf + s * i);
Integer[2 * i + 1] = *(int*) (chBuf + s * i + sizeof(int));
Double[i] = *(double*) (chBuf + s * i + 2 * sizeof(int));
}
相关文章:
- 如何在C++中将数组转换为矢量指针
- 将C++中的数组转换为字符串
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 将 int 数组转换为 std::vector<int*>
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- 将字节数组转换为带有字节序问题的指针
- 使用 stbi_write_png,如何将 0 和 1 的矩形字节数组转换为单色 png 文件?
- 将字符数组转换为时间结构
- 将字节数组转换为多维数组
- 可视化 如何在C++中将字符数组转换为 FILE 类型
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- C++如何将字符数组转换为字节向量(向量<byte>)
- 将字符数组转换为结构时出现问题. 结构的字符数组变量溢出
- 无法将字符数组转换为包含 utf-8 字符的字符串
- 如何使用 C++将 2D RGB 数组转换为 dds 文件?
- 如何将字符串指针数组转换为字符串类型的智能指针向量?
- 将 int 数组转换为带有小数C++的双精度数组
- 使用 .data() 将字符数组转换为 std::string 不会转换整个数组
- 将字符数组转换为整数值