2

0xFFFF形式(2 バイト) の 16 進数値を 10 進数 (符号なしおよび符号付き) に変換する関数が必要です。

例えば:

0xFFFE65534 (署名なし)
0xFFFE-2 (署名付き)

4 Bytes と 1 Byteにも同じことが必要です。

これらすべてのオプション (3 * 2 オプション) を元に戻す必要があります - 10 進数から 16 進数 (合計 12 個のオプション)。

私の関数は次のようになります。

    string Myconverter(int ByteSize, bool IsFromHextoDecimal, bool IsSigned)
    {
        ...
    }

これらの変換を実行する機能が組み込まれている場合は、参照/リンクを希望します。

4

1 に答える 1

3

クラスのメソッドを使用してConvert、文字列を数値に解析します。符号なしの 2 バイト値を解析するには、ToUInt16メソッドを使用し、基数 16 を指定します。

ushort value = Convert.ToUInt16("0xFFFF", 16);

他の形式には次の方法を使用します。

ToInt16  = signed 2 byte
ToUInt32 = unsigned 4 byte
ToInt32  = signed 4 byte
ToByte   = unsigned 1 byte
ToSByte  = signed 1 byte

数値を 16 進文字列にフォーマットするには、フォーマットを使用してX(またはx小文字を取得して)、桁数を指定します。

string formatted = value.ToString("X4");

ただし、0xプレフィックスがないため、必要に応じて追加する必要があります。

string formatted = "0x" + value.ToString("X4");
于 2013-04-15T09:16:44.557 に答える