c# - 如何将二维 float 组转换为字节数组,反之亦然

标签 c#

我有以下形式的数据

float [1000,2] 数据。

我想将该数据转换为 byte []b 的形式。

我想再次将 byte []b 转换为 float [1000,2] 数据的二维数组

我想这样做是因为我可以很容易地将数据以字节的形式保存到服务器。

最佳答案

您可以使用这些方法。它们使用简单的编程结构,我认为理解它们并不难。第一种方法将浮点 2Dimansional 数组转换为一个字节数组。它首先声明字节数组,然后将每个浮点值转换为 4 个字节并将它们存储到大字节数组中。

    public byte[] ToByteArray(float[,] nmbs)
    {
        byte[] nmbsBytes = new byte[nmbs.GetLength(0) * nmbs.GetLength(1)*4];
        int k = 0;
        for (int i = 0; i < nmbs.GetLength(0); i++)
        {
            for (int j = 0; j < nmbs.GetLength(1); j++)
            {
                byte[] array = BitConverter.GetBytes(nmbs[i, j]);
                for (int m = 0; m < array.Length; m++)
                {
                    nmbsBytes[k++] = array[m];
                }
            }
        }
        return nmbsBytes;
    }

第二种方法将字节数组转换为二维 float 组。它首先声明数组,然后每四个字节转换为 float ,然后存储到二维 float 组中的指定位置。

    public float[,] ToFloatArray(byte [] nmbsBytes)
    {
        float[,] nmbs = new float[nmbsBytes.Length /4 / 2, 2];
        int k = 0;
        for (int i = 0; i < nmbs.GetLength(0); i++)
        {
            for (int j = 0; j < nmbs.GetLength(1); j++)
            {
                nmbs[i, j] = BitConverter.ToSingle(nmbsBytes,k);
                k += 4;
            }
        }
        return nmbs;
    }

关于c# - 如何将二维 float 组转换为字节数组,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15522590/

相关文章:

c# - DataContract 和自定义设置/获取从字符串设置日期时间

c# - 将 WPF DrawingGroup 呈现为单个 ImageSource

javascript - 停止刷新 token 的竞争条件?

c# - 是否有任何支持 WinRT 的免费 XMPP 库?

javascript - 将 JS 注入(inject) Literal 并在页面加载后触发

c# - 研究使用 C# 在目录及其子目录中高效搜索文本

c# - 如何使用 LINQ 在 ComboBox 中显示不同的属性值?

c# "like/contains"搜索列表

c# - c#中图像的边框

c# - 在 Blazor wasm 中使用 CSharpScript 时出现 System.IO.FileNotFoundException