vc 浮点数转换为内存十六进制字符串
来源:百度文库 编辑:神马文学网 时间:2024/04/30 00:30:50
2009-06-09 16:35
在一些规约解析中,我们往往需要把浮点数转换成16进制的字符串 或者把16进制的字符串转换为浮点数来验证传输的正确性。下面的函数实现了浮点数到16进制字符串的转换,主要是使用了内存拷贝的方法。另外需要注意的是内存中的数据一般是底字节在前。
关于16进制字符串(可以直接从内存查看)转换到浮点数,是下面过程的逆过程,这里就不在实现。
/*****************************************************************************
author/data:
Description: 浮点数转换为16进制字符串.
param:
f : 要转换的浮点数
str: 16进制的字符串,符合格式: "C1 48 00 00 "
byteOrder: 0表示低字节在前,本函数只处理低字节在前的情况
*****************************************************************************/
void Float_To_HexStr(float f, CString& str,int byteOrder)
{
CByteArray byteArray;
byteArray.SetSize(4);
memcpy(&byteArray[0],&f,4);
str = CByteArrayToCString(byteArray);
str.TrimRight(" ");
}
辅助函数:
/*****************************************************************************
author/data:
Description: 把字节数组转换为16进制字符串.
param:
字节数组 : the byte array will convert to str
return value:
str: Hex str.
*****************************************************************************/
CString CByteArrayToCString(CByteArray& byteArray)
{
int len = byteArray.GetSize();
CString strTmp,str;
str = "";
for(int i=0 ; i{
strTmp.Format("%002X ",byteArray[i]);
str += strTmp;
}
return str;
}
在一些规约解析中,我们往往需要把浮点数转换成16进制的字符串 或者把16进制的字符串转换为浮点数来验证传输的正确性。下面的函数实现了浮点数到16进制字符串的转换,主要是使用了内存拷贝的方法。另外需要注意的是内存中的数据一般是底字节在前。
关于16进制字符串(可以直接从内存查看)转换到浮点数,是下面过程的逆过程,这里就不在实现。
/*****************************************************************************
author/data:
Description: 浮点数转换为16进制字符串.
param:
f : 要转换的浮点数
str: 16进制的字符串,符合格式: "C1 48 00 00 "
byteOrder: 0表示低字节在前,本函数只处理低字节在前的情况
*****************************************************************************/
void Float_To_HexStr(float f, CString& str,int byteOrder)
{
CByteArray byteArray;
byteArray.SetSize(4);
memcpy(&byteArray[0],&f,4);
str = CByteArrayToCString(byteArray);
str.TrimRight(" ");
}
辅助函数:
/*****************************************************************************
author/data:
Description: 把字节数组转换为16进制字符串.
param:
字节数组 : the byte array will convert to str
return value:
str: Hex str.
*****************************************************************************/
CString CByteArrayToCString(CByteArray& byteArray)
{
int len = byteArray.GetSize();
CString strTmp,str;
str = "";
for(int i=0 ; i
strTmp.Format("%002X ",byteArray[i]);
str += strTmp;
}
return str;
}
vc 浮点数转换为内存十六进制字符串
十六进制单精度浮点数转换成十进制数的代码
字符串与整数、浮点数、无符号整数之间的转换
把十六进制字符串转换为数字的几个C语言版本 - Graphics的专栏
将十六进制数转换为十进制如何来转换呢比如一十六进制数4EBC67转换为十进制是516003...
刚刚在《指针与C》上看见一句代码,把十进制数转换为十六进制的符号输出:
字符串转换为数值的库函数
十进制转换为二进制的方法(同理八进制、十六进制转换为二进制的方法)
IEEE浮点数表示
IEEE浮点数
如何:将字符串转换为 DateTime(C# 编程指南)
VC中字符串换行
fabs 浮点数取绝对值
字符串的转换
如何将CString转换为char[] VC/MFC / 基础类
字符串和字符数组转换
字符串和字符数组转换
数字转换成字符串库函数
IEEE浮点数表示法(zz)
VC++中各种字符串的表示方法
vc文件操作,内存映??- vc学习
vc文件操作,内存映??- vc学习??
vc文件操作,内存映射- vc学习
VC 6.0内存文件映射