2

バイト ストリームを double 配列にコピーしようとしています。バイトは必ずしも double 値を表すとは限りません。double 配列はストレージ メカニズムとして使用されているだけです (これはおかしいと思いますが、これはフレームワークの現在の制限であり、期限があります)。ただし、状況によっては、二重配列をバイト配列にコピーし直すときにデータが変更されていることがわかりました。

次のテストケースの失敗に絞り込みました

[TestMethod]
    public void Test()
    {
        var bytes = new byte[]
            {
                24,
                108,
                6,
                14,
                7,
                91,
                242,
                255
            };

        double d = BitConverter.ToDouble(bytes, 0);

        var returnedBytes = BitConverter.GetBytes(d);

        for (int i = 0; i < returnedBytes.Count(); i++)
        {
            Assert.AreEqual(bytes[i], returnedBytes[i]);
        }
    }

このアプローチをとることを妨げている基礎となるフレームワーク機能がいくつかあることに気づきました。しかし、興味深いことに、上記のテストケースが失敗する理由を誰でも説明できますか?

4

2 に答える 2