大佬教程收集整理的这篇文章主要介绍了c – 将float向量重新解释为unsigned char数组并返回,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个例程,它将unsigned char数组作为参数,以便将其编码为Base64.我想在Base64中编码STL浮点向量(向量),因此需要将浮点向量中的字节重新解释为无符号字符数组,以便将其传递给编码例程.我已经尝试了很多东西,从重新解释和静态转换,到mem副本等,但它们似乎都没有工作(至少不是我实现它们的方式).
同样,在将编码数据解码回浮点数组时,我需要做相反的事情.解码例程将解码数据作为unsigned char数组提供,我将需要重新解释该字节数组,再次将其转换为浮点数.
std::string EncodeBase64FloatVector( const vector<float>& p_vector ) { unsigned char* sourceArray; // SOMEHOW FILL THE sourceArray WITH THE FLOAT VECTOR DATA BITS!! char* target; size_t targetSize = p_vector.size() * sizeof(float); target = new char[ targetSize ]; int result = EncodeBase64( sourceArray,floatArraySizeInUChars,target,targetSize ); String returnResult; if( result != -1 ) { returnResult = target; } delete target; delete sourceArray; return returnResult; }
任何帮助将不胜感激.谢谢.
雷蒙德.
typedef unsigned char byte; std::vector<float> original_data; ... if (!original_data.empty()) { const float *p_floats = &(original_data[0]); // parens for clarity
现在,要将其视为unsigned char数组,请使用reinterpret_cast:
const byte *p_bytes = reinterpret_cast<const byte *>(p_floats); // pass p_bytes to your base-64 encoder }
您可能希望在其余数据之前对向量的长度进行编码,以便更容易对其进行解码.
注意:您仍然需要担心字节顺序和表示详细信息.这只有在您回读与您编写的同一平台(或兼容的平台)时才有效.
以上是大佬教程为你收集整理的c – 将float向量重新解释为unsigned char数组并返回全部内容,希望文章能够帮你解决c – 将float向量重新解释为unsigned char数组并返回所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。