c#float[]转为byte[]该怎么转?
答案:4 悬赏:10 手机版
解决时间 2021-04-05 10:52
- 提问者网友:暗中人
- 2021-04-04 18:05
c#float[]转为byte[]该怎么转?
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-04-04 19:39
float f = -120.5f;
byte[] b = BitConverter.GetBytes(f);
foreach (var b1in b)
{
for (int k = 0; k < 8; k++)
{
Console.Write(GetBit(b1,k));
}
}
byte[] b = BitConverter.GetBytes(f);
foreach (var b1in b)
{
for (int k = 0; k < 8; k++)
{
Console.Write(GetBit(b1,k));
}
}
Console.WriteLine("
120.5f:"); float ff = 120.5f;
byte[] bb = BitConverter.GetBytes(ff);
foreach (var b1in bb)
{
for (int k = 0; k < 8; k++)
{
Console.Write(GetBit(b1, k));
}
}
Console.WriteLine("
"+BitConverter.ToSingle(bb,0));其输出是:
从这里可以看出:使用BitConverter.GetBytes得到的长度为4的Byte[] bytes中,bytes[0]是float在计算机中存储的最低字节,且其中bytes[0]的最低位就是float在计算机中存储的最低位,且要从Byte[]获得float也应该按照上述顺序排列的Byte[]。
全部回答
- 1楼网友:归鹤鸣
- 2021-04-04 22:24
float[] a = new float[10] { 9.7f, 9.8f, 9.9f, 10, 10.08f, 10.8f, 9.98f, 9.8f, 9.9f, 10 };
byte[] b = new byte[10];
for (int i = 0; i < 10; i++)
{
b[i] = (byte)a[i];
}
还是有问题,你的9.7转换为Byte就变成了9,要么就转成一个byte数组。追问大神,我现在头都炸掉啦,这些数据关系把我打败啦
这个问题能有解决的办法吗?追答首先你要确定干什么用
再就是9.7本来就不能转成单个byte,你的需求有问题。追问的确是这样啊,四个字节变一个字节,哎呀,,,,可是协议里面给的是这样子啊
byte[] b = new byte[10];
for (int i = 0; i < 10; i++)
{
b[i] = (byte)a[i];
}
还是有问题,你的9.7转换为Byte就变成了9,要么就转成一个byte数组。追问大神,我现在头都炸掉啦,这些数据关系把我打败啦
这个问题能有解决的办法吗?追答首先你要确定干什么用
再就是9.7本来就不能转成单个byte,你的需求有问题。追问的确是这样啊,四个字节变一个字节,哎呀,,,,可是协议里面给的是这样子啊
- 2楼网友:深街酒徒
- 2021-04-04 20:47
for(int i=0;i<10;i++)
{
b[i]=(byte)a[i];
}
{
b[i]=(byte)a[i];
}
- 3楼网友:春色三分
- 2021-04-04 20:30
你们回答都负点责好不!!!
一看这数据就不是能直接转的.就算硬转过去了.也转不回来.
首先 byte [] b = new byte [10]; 这个一维数组只能存一个数, 也就是存一个9.7或 9.8,但绝不能存 {9.7,9.8}
只能用List
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯