如何将c#中浮点数转化为4个字节的16进制数字符串表示?

时间:2023-01-11 21:38:28
例如c++中可以用联合体
union aa
{
   float f;
   char ch[4];
}

union aa change;
change.f=12.45;
ch中存放的就是12.45的16进制字符串的表示

我能力有限描述的可能不是很清楚,希望高手们能理解
我知道c#中整数转化为16进制字符串是
int i=45;
string s=i.toString("X");
麻烦知道怎么做的,传授一下

9 个解决方案

#1


好像没有直接转的方法..

整数部分和小数部分分别转,再合并....

#2


不太明白搂主的意思 邦定

#3


能不能说的具体点,举个例什么的,谢谢

#4


string str = "";
byte[] arr = BitConverter.GetBytes(f);
foreach(byte bt in arr)
{
    str += Convert.ToString(bt,16);
}

#5


我的意思就是将浮点数用16进制字符串表示
如0.40000001,表示成4各字节的字符串为cdcccc3e

#6


谢谢

#7


f是float类型
如果你直接输入0.40000001,默认为double,8字节
可以加后缀表示是float,如
string str = "";
byte[] arr = BitConverter.GetBytes(0.40000001F);
foreach(byte bt in arr)
{
    str += Convert.ToString(bt,16);
}
//str cdcccc3e

#8


恩,十分感谢

#9


过一会给你分,真的很感谢

#1


好像没有直接转的方法..

整数部分和小数部分分别转,再合并....

#2


不太明白搂主的意思 邦定

#3


能不能说的具体点,举个例什么的,谢谢

#4


string str = "";
byte[] arr = BitConverter.GetBytes(f);
foreach(byte bt in arr)
{
    str += Convert.ToString(bt,16);
}

#5


我的意思就是将浮点数用16进制字符串表示
如0.40000001,表示成4各字节的字符串为cdcccc3e

#6


谢谢

#7


f是float类型
如果你直接输入0.40000001,默认为double,8字节
可以加后缀表示是float,如
string str = "";
byte[] arr = BitConverter.GetBytes(0.40000001F);
foreach(byte bt in arr)
{
    str += Convert.ToString(bt,16);
}
//str cdcccc3e

#8


恩,十分感谢

#9


过一会给你分,真的很感谢