質問

私は読み取るバイナリログファイル作りの装備です。

私のデータをbyte[].

いを読み込む必要がありバイトを短んて思ったこと。

short value = (short)(byte[1] << 8);
value += byte[2];

現在をピックアップしました。値は、正のための有効なデータです。

どう知っている場合はファイルがあきの値FF FFたそれらのバイト配列?

見るときにその値に変換するFF FF短いか-1になります。

これは通常の価値FF FF?, また、コンピュータどちらなのでしょうかあの行き、ロール間の無効なデータはもらえますか?

私の目的にすべての論文番号うことを求めることができます。まFF FF、実際には短-1う必要性を検証する全ての結果をpostitive.


Keith

ちなみに、私も読書、その他のデータです。私がこちらかすることから始まります。読み込み機能は、基本的な部分から読み込むbyte[].すべてのデータタイプを読み込み用の基本的な読みがなくなります。

    public byte Read()
    {
        //advance position and then return byte at position 

        byte returnValue;
        if (_CurrentPosition < _count - 1)
        {
            returnValue= _array[_offset + ++_CurrentPosition];
            return returnValue;
        }
        else
            throw new System.IO.EndOfStreamException
                   ("Cannot Read Array, at end of stream."); 
    }


    public float ReadFloat()
    {
        byte[] floatTemp = new byte[4];
        for (int i = 3; i >= 0; i--)
        {
            floatTemp[i] = Read();
        }

        float returnValue = System.BitConverter.ToSingle
            (floatTemp, 0);

        if (float.IsNaN(returnValue))
        {
            throw new Execption("Not a Number");    
        }
        return returnValue;
    }


    public short ReadInt16()
    {
        short returnValue = (short)(Read() << 8);
        returnValue += Read();
        return returnValue;
    }

    public int ReadInt32()
    {
        int returnValue = Read() << 24;
        returnValue += Read() << 16;
        returnValue += Read() << 8;
        returnValue += Read();
        return returnValue;
    }
役に立ちましたか?

解決

0xffff (すべてのビットが1には-1に署名し、美しいケープ、ポンチョですね。書を読み 二人の補 詳細についての詳細切り替えることができる大きなデータ型、または(このようにGrzenio)で使用する符号なしタイプです。

他のヒント

、こちらをクリックして下さいって BitConverter 単身.現在を見てみましょうまめに使うのかも---

MemoryStream mem = new MemoryStream(_array);


float ReadFloat(Stream str)
{
   byte[] bytes = str.Read(out bytes, 0, 4);
   return BitConverter.ToSingle(bytes, 0)
}

public int ReadInt32(Stream str)
{
   byte[] bytes = str.Read(out bytes, 0, 4);
   return BitConverter.ToInt32(bytes, 0)
}

ただしushort(unsigned short)?

思うにするとともに システム。BitConverter クラスです。

具体的にはショーツの ToInt16 方法。

ませんのでご質問ありがとうございますのでご注意下さいものと変わらなく、評判とは違ったたかendianessのハードウェアデバイスがそのデータです。からの例のようになフロートは少しエンディアンが、整数フィールドはビッグエンディアン?いハードウェアデバイスがミックスendianessその出力のバイナリデータです。

あり0xFFFFは-1に署名します。

また、なぜなの BinaryReader クラス?

の値FFFFのために"は、-1の値FFFFにおける符号なしshort"は65536.

うことができていることを確認してくださいを使用する符号なしshortしているすべての値ますことを求めることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top