我有 vector<unsigned char>
用二进制数据归档。我需要从 vector (2 个字节)中获取 2 个项目并将其转换为整数。这怎么可能不在 C 风格中完成?
最佳答案
请使用移位运算符/按位运算。
int t = (v[0] << 8) | v[1];
这里提出的所有基于强制转换/union 的解决方案都是 AFAIK 未定义行为,并且可能会在利用 strict aliasing(例如 GCC)的编译器上失败。
我有 vector<unsigned char>
用二进制数据归档。我需要从 vector (2 个字节)中获取 2 个项目并将其转换为整数。这怎么可能不在 C 风格中完成?
最佳答案
请使用移位运算符/按位运算。
int t = (v[0] << 8) | v[1];