gpt4 book ai didi

c# - 在 C# NETMF 中将 float 转换为字节数组(NETMF 没有 BitConverter)

转载 作者:太空狗 更新时间:2023-10-30 01:07:56 27 4
gpt4 key购买 nike

我有一个 C# NETMF项目,我需要将 float 转换为 byte[] ,反之亦然。问题是,NETMF 没有像 .NET 那样的 System.BitConverter,所以我真的找不到任何方法来做这件事,而不是去低级别并自己做。

我一直从事高级编程(JavaPythonC# 等)并且只涉足 C++,所以我真的不知道如何将 float 转换为字节数组。

执行此操作的一些样板函数示例代码是什么样的?

最佳答案

StructLayoutAttributesupported通过 .NET Micro Framework,因此您可以使用 C++ 样式的联合来获取 float 的字节(反之亦然):

[StructLayout(LayoutKind.Explicit)]  
public struct FloatUnion
{
[FieldOffset(0)] public float Value;
[FieldOffset(0)] public byte Byte0;
[FieldOffset(1)] public byte Byte1;
[FieldOffset(2)] public byte Byte2;
[FieldOffset(3)] public byte Byte3;

public byte[] ToByteArray()
{
return new[] { Byte0, Byte1, Byte2, Byte3 };
}

public static byte[] FloatToBytes(float value)
{
return new FloatUnion { Value = value }.ToByteArray();
}

public static float BytesToFloat(byte[] bytes)
{
if (bytes.Length != 4) throw new ArgumentException("You must provide four bytes.");
return new FloatUnion { Byte0 = bytes[0], Byte1 = bytes[1], Byte2 = bytes[2], Byte3 = bytes[3] }.Value;
}
}

关于c# - 在 C# NETMF 中将 float 转换为字节数组(NETMF 没有 BitConverter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com