12

この文字列をバイトに変換するにはどうすればよいですか?

string a = "0x2B";

私はこのコードを試しました、(バイト)(a); しかしそれは言った:

タイプ文字列をバイトに変換できません...

そして、私がこのコードとこれを試したときConvert.ToByte(a);byte.Parse(a);それは言った:

入力文字列は、正しい形式ではありませんでした...

このための適切なコードは何ですか?

しかし、たとえば配列で宣言する場合は、許容されます...

例えば:

byte[] d = new byte[1] = {0x2a};
4

5 に答える 5

13

Convert.ToByte入力文字列には16進数が含まれているため、使用するベースを指定する必要があります。

byte b = Convert.ToByte(a, 16);
于 2012-05-11T18:41:46.553 に答える
5
byte b = Convert.ToByte(a, 16);
于 2012-05-11T18:43:16.783 に答える
4

ConvertヘルパークラスのToByte関数を使用できます。

byte b = Convert.ToByte(a, 16);
于 2012-05-11T18:39:24.633 に答える
2

アップデート:

他の人が述べているように、で使用する私の最初の提案はbyte.Parse()NumberStyles.HexNumber実際には「0x」プレフィックスの付いた16進文字列では機能しません。最善の解決策はConvert.ToByte(a, 16)、他の回答で提案されているように使用することです。

元の答え:

以下を使用してみてください。

byte b = byte.Parse(a, NumberStyles.HexNumber, CultureInfo.InvariantCulture);
于 2012-05-11T18:39:06.437 に答える
2

UTF8Encodingを使用できます:

public static byte[] StrToByteArray(string str)
{
    System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
    return encoding.GetBytes(str);
}
于 2012-05-11T18:44:26.120 に答える