如何将字节数组中的4个字节转换为32位浮点数?那么对于64位浮点数(双精度),如何对字节数组中的8个字节执行相同操作?我注意到C#中的BitConverter类有这个,但是我很好奇它背后的数学。
我目前编写了很多字节转换函数,但是使用BitConverter类而不是我自己的函数会更有效吗?
答案 0 :(得分:1)
使用BitConverter
函数通常会更有效,尽管在某些情况下(例如,将两个字节转换为short),如果你编写一个内联shift-and-or,代码会快得多操作
如果有疑问,请使用Stopwatch
检测代码并计算发布时间。这是唯一真正了解的方式。
但是,如果您正在处理值的数组,那么可以使用{{更快更容易(但以内存空间为代价)将整个数组从一种类型转换为另一种类型1}}。
例如,您可以将一个双精度数组复制到一个字节数组中,然后按如下方式复制:
Buffer.BlockCopy
这可能更适合您的特定情况。和往常一样,你需要做一些仔细的时间,以确定它是否有用。