C++ – 字节数组byte[]或者unsigned char[]与long double的相互转换
设定long double型的字节长度为12。
1 long double转字节数组
long double转字节数组byte[]或者unsigned char[]
void LongDoubleTobytes(long double data, unsigned char bytes[])
{
size_t length = sizeof(long double);
char* p = (char*)&data;
for (int i = 0; i < length; i++)
{
bytes[i] = *p++;
}
}
2 字节数组转long double
字节数组byte[]或者unsigned char[]转long double型
long double BytesToLongDouble(unsigned char bytes[])
{
long double data = *((long double*)bytes);
return data;
}
3 使用示例
#include <iostream>
long double BytesToLongDouble(unsigned char bytes[])
{
long double data = *((long double*)bytes);
return data;
}
void LongDoubleTobytes(long double data, unsigned char bytes[])
{
size_t length = sizeof(long double);
char* p = (char*)&data;
for (int i = 0; i < length; i++)
{
bytes[i] = *p++;
}
}
int main()
{
unsigned char longDoubleByteArray[12];
long double a = 15313132123.0;
LongDoubleTobytes(a, longDoubleByteArray);
std::cout << BytesToLongDouble(longDoubleByteArray) << std::endl;
return 0;
}
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 字节数组byte[]或者unsigned char[]与long double的相互转换
原文链接:https://www.stubbornhuang.com/2038/
发布于:2022年03月17日 22:31:07
修改于:2023年06月26日 20:26:50
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
50