-
通过TCP接收到了很多数据,使用char类型数组进行存储,需要最后输出int类型的数组,并且两个char类型的数据才能组成一个int类型的数据,开始有点困惑,并不是不会,而是长时间不使用,真的有点无从下手。
-
写了一个测试代码,其实使用移位和强制类型转化就可以,真的是有点傻眼了。。。
#include <iostream>
using namespace std;
int main()
{
char test_arr1[20] = { 0xff, 0xf4, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0x10,\
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20 };
int test_arr2[10] = { 0 };
for (int i = 0, j = 0; j < sizeof(test_arr1); i++, j+=2)
{
test_arr2[i] = (short)(test_arr1[j]<<8 | test_arr1[j + 1]);
}
for (int i = 0; i < 10; i++)
{
cout << test_arr2[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
- 运行结果
- 很多东西,真的需要总结,好脑子不如烂笔头。。