を見つけることができませんでしたが、私は型「にSystem.FormatException」の未処理の例外が がmscorlib.dllConvert.ToByteは、私はバイトに「XXX」を変換何とか必要な任意の認識可能な数字
に発生した例外ました
追加情報:認識可能な数字が見つかりませんでした。
"xxx"の値はバイトに変換できますか?
byte tr = (byte)(Convert.ToByte("xxx", 16) << 4);
を見つけることができませんでしたが、私は型「にSystem.FormatException」の未処理の例外が がmscorlib.dllConvert.ToByteは、私はバイトに「XXX」を変換何とか必要な任意の認識可能な数字
に発生した例外ました
追加情報:認識可能な数字が見つかりませんでした。
"xxx"の値はバイトに変換できますか?
byte tr = (byte)(Convert.ToByte("xxx", 16) << 4);
バイトに "XXX" を変換することはできません。これは単にバイトの表現ではありません。
バイト[] tr = Encoding.UTF8.GetBytes( "xxx");しかし、これで私はxが120 –
です有効な値は – chris579
この行(Convert.ToByte("xxx", 16) << 4)
は、byte
に解析すると、System.FormatException
をスローする理由で、文字列に変換できないinteger
を返します。
しかし、すでに文字列をbyte []に変換する方法の良い例があります。
static byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
ですが、私は120,0,120,0,120,0を取得しましたが、Encoding.UTF8.GetBytes( "xxx")で私は120,120,120を得ることができるので、おそらくEncoding.UTF8 .GetBytes( "xxx")? –
@IrmantasMedeišis私のアプローチの唯一のメリットは、[無効なデータ](http://www.cl.cam.ac.uk/)が含まれていても元の文字列を再構築できることです。 〜mgk25/ucs/examples/UTF-8-test.txt)を参照してください。 –
あなたはバイト配列に文字列を変更する必要がある場合:
byte[] toBytes = Encoding.ASCII.GetBytes("xxx");
バイト[] TR = Encoding.UTF8.GetBytes( "XXX")は、この作品の罰金しかし、私どのように私はこのシフトを適用することができますか疑問に思う16)<< 4); –
その後にシフトを適用します。あなたは変換でそれを適用することはできません。 – chris579
xxxを16進数でバイトに変換しています。私たちはxxxを16基持っていません。 – Mehrdad