2009-04-25 8 views
1

バイトの会話になると非常に混乱します。C#バイト変換

は、私は2つのconvertions実行する必要があります。

1.Weはを有するバイト[]配列{0x30から、0x31、0x32の、0x33の、0x34の、0x35の}。

「30 31 32 33 34 35」という文字列に変換するにはどうすればよいですか?

の2.We []配列

今は(そうで0x30から= 0、0x31 = 1、0x32の= 2)ASCIIに変換する必要が同じバイトを有する

Iがすべき完了したら「」を取得します。

どのように変換するのですか?

答えて

6
var bytearr = new byte[] { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35 }; 
var str = bytearr.Select(x => x.ToString("x2")); 
var ascii = bytearr.Select(x => (char)x); 

あなたは(IEnumerableのではなく)単一stringとして出力したい場合は、あなたができる:

var str = String.Join(" ", bytearr.Select(x => x.ToString("x2")).ToArray()); 
var ascii = new string(bytearr.Select(x => (char)x).ToArray()); 
+2

あなたは、私が するvarアスキー= String.Join( ""、bytearr.Select(X =>((文字)を考えて、第2のASCII割り当てのtoString()を必要とするX).ToString())。 ToArray()); –

+0

@スティーブ:それを指摘してくれてありがとう。私は盲目的にそれらを上から貼り付けてコピーしたのを忘れていました;)私はより良いアプローチ( 'new string(char [])')に切り替えました –

0
  1. これは、間のスペースに16進数の数値をフォーマットします:

    文字列r1 = String.Join( ""、array.Select(n => n.ToString( "x2"))。ToArray());

  2. これはASCIIのバイトを変換する:

    列R2 = Encoding.ASCII.GetString(アレイ)

関連する問題