将字节数组转换为浮点32位和64位?

时间:2014-04-25 07:45:47

标签: c# bit-manipulation bitconverter

如何将字节数组中的4个字节转换为32位浮点数?那么对于64位浮点数(双精度),如何对字节数组中的8个字节执行相同操作?我注意到C#中的BitConverter类有这个,但是我很好奇它背后的数学。

我目前编写了很多字节转换函数,但是使用BitConverter类而不是我自己的函数会更有效吗?

1 个答案:

答案 0 :(得分:1)

使用BitConverter函数通常会更有效,尽管在某些情况下(例如,将两个字节转换为short),如果你编写一个内联shift-and-or,代码会快得多操作

如果有疑问,请使用Stopwatch检测代码并计算发布时间。这是唯一真正了解的方式。

但是,如果您正在处理值的数组,那么可以使用{{更快更容易(但以内存空间为代价)将整个数组从一种类型转换为另一种类型1}}。

例如,您可以将一个双精度数组复制到一个字节数组中,然后按如下方式复制:

Buffer.BlockCopy

这可能更适合您的特定情况。和往常一样,你需要做一些仔细的时间,以确定它是否有用。