2016-04-25 52 views
0

我需要「XXX」以某種方式轉化爲字節,但我得到的例外Convert.ToByte找不到任何可識別的數字

型「System.FormatException」未處理的異常發生在 mscorlib.dll中

附加信息:找不到任何可識別的數字。

是否有可能「xxx」值轉換爲字節?

byte tr = (byte)(Convert.ToByte("xxx", 16) << 4); 
+0

的byte [] TR = Encoding.UTF8.GetBytes( 「XXX」)這項工作很好,但我想知道我該如何應用這種移位16)<< 4); –

+1

之後應用轉移。你不能在轉換中應用它。 – chris579

+0

你正在做的是將16位基址中的xxx轉換爲字節。我們在16個基地沒有xxx。 – Mehrdad

回答

0

無法將「xxx」轉換爲字節。它根本不是任何字節的表示。

+0

byte [] tr = Encoding.UTF8.GetBytes(「xxx」);但有了這個我得到的x是120 –

+0

這是一個有效的值 – chris579

0

此行(Convert.ToByte("xxx", 16) << 4)將返回integer,當解析到byte時,這不會轉換爲字符串,這就是爲什麼它會拋出System.FormatException

但是,如何將字符串轉換爲字節[]已經是一個很好的例子。

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; 
} 

Source of Example

+0

比我得到120,0,120,0,120,0但我與Encoding.UTF8.GetBytes(「xxx」)我可以得到120,120,120所以也許會更好Encoding.UTF8 .GetBytes( 「XXX」)? –

+0

@IrmantasMedeišis這取決於你,我的方法的唯一好處是你仍然可以獲取數據並重建原始字符串,即使它包含[無效數據](http://www.cl.cam.ac.uk/) 〜mgk25/ucs/examples/UTF-8-test.txt),因爲它只查看字節。 –

0

如果您需要更改一個字符串轉換爲字節數組:

byte[] toBytes = Encoding.ASCII.GetBytes("xxx");