2016-09-14 5 views
1

少し助けが必要です。以下をバイトに変換するにはどうすればいいですか?C#文字列の値をバイトに変換する

string s = "0x01"; 
byte b = Convert.toByte(s); //(Tried this) ?? 
byte c = byte.Parse(s); //(Tried this as well) 

どのようにsをバイトに変換しますか?

+1

とparse()メソッドを使用し有効です。文字列に '0x01 'を代入することはできません。あなたが持っている実際の文字列に修正してください。 –

+0

申し訳ありません私はすぐに問題を説明しようとするために上部を入力します。 – Lowkey

+0

'0x ??'の形式でのみ文字列を変換するのですか、バイナリ、8進数、10進数をサポートする必要がありますか? –

答えて

2

パーズ関数は、文字列内の接頭辞0Xを許可しないので、サブストリングを使用して削除することができます。

byte myByte = Byte.Parse(s.SubString(2), NumberStyles.HexNumber); 

または使用 -

まず
byte myByte = Convert.ToByte(s,16); 
+0

最初に 'int'に変換するのはなぜですか? 'ToByte'は基数も受け入れます。 – kiziu

+0

別の方法です。 – Techidiot

+1

申し訳ありませんが、私は従いません。別の不要なステップを追加するのはなぜですか? 'Convert.ToByte(" 0xef "、16)'は正しく動作します。 – kiziu

0

、文字列値から "0X" を削除し、コードもないNumberStyles.HexNumber

string s = "AA"; 
byte byteValue = 0; 
try 
{ 
    byteValue = byte.Parse(s, NumberStyles.HexNumber | NumberStyles.AllowHexSpecifier); 
} 
catch (Exception e) 
{ 
    Console.WriteLine(e); 
} 

Console.WriteLine("String value: 0x{0}, byte value: {1}", s, byteValue); 
関連する問題