2012-03-13 10 views
3

デバイスから情報を読み取っていて、データが整数形式で返されています。これをC#を使用してASCII文字に変換する必要があります。2進数をASCII文字に変換する

以下は、変換する必要があるデータの例です。私は私のデバイスから整数値26990を受け取って、それをASCIIに変換する必要があります。私はちょうどこの値のために、望ましい結果が "ni"であることを知りました。

整数値26990は16進数で696e、バイナリでは110100101101110であることがわかりましたが、私はそれを自分で解決できないので変換を行う方法を知りたいと思います。

誰でも助けてください。

多くのおかげで、

カール

答えて

5
int i = 26990; 
char c1 = (char)(i & 0xff); 
char c2 = (char)(i >> 8); 

Console.WriteLine("{0}{1}", c1, c2); 
0

デバイスは、あなたがこのようなものを使用することができますバイトを送信している場合は、次のデバイスは整数を送信している場合

byte[] bytes = new byte[] { 0x69, 0x6e }; 
string text = System.Text.Encoding.ASCII.GetString(bytes); 

そうでない場合には、使用することができますこのようなもの:

byte[] bytes = BitConverter.GetBytes(26990); 
string text = System.Text.Encoding.ASCII.GetString(bytes, 0, 2); 

どちらの場合でも、textは実行後に"ni"を含みます。後者では、エンディアンの問題に対処しなければならない場合があることに注意してください。

また参照:

0

使用BitConverterEncoding変換を実行する:

class Program 
{ 
    public static void Main() 
    { 
     int d = 26990; 
     byte[] bytes = BitConverter.GetBytes(d); 
     string s = System.Text.Encoding.ASCII.GetString(bytes); 
     // note that s will contain extra NULLs here so.. 
     s = s.TrimEnd('\0'); 
    } 
} 
関連する問題