2016-10-07 246 views
0

我試圖將char數組轉換爲字節。但我得到了以下錯誤:將char轉換爲字節

Cannot implicitly convert int to byte

public byte[] asciiToDecConversion(char[] asciiCharArray) 
{ 
    byte[] decimalArray = new byte[10]; 
    const byte asciiFormat = 32; 

    for (int j = 0; j < 10; j++) 
    { 
     decimalArray[j] = (Convert.ToByte(asciiCharArray[j]) - asciiFormat); 
    } 

    return decimalArray; 
} 
+0

@ sunshine,你有幾個有效的答案,所以你應該將其中一個標記爲已接受,這樣你的帖子就不會出現沒有答案,並且你也會給那些花時間試圖幫助你的人。 – Andrew

回答

3

你需要轉換爲字節:

decimalArray[j] = (byte) (Convert.ToByte(asciiCharArray[j]) - asciiFormat); 
+0

爲什麼'Convert.ToByte'爲一個演員陣容而另一個是直接演員陣容?實際上,'Convert.ToByte'完全沒有必要。 – Andrew

1

您應該能夠直接投它:

decimalArray[j] = (byte)(asciiCharArray[j] - asciiFormat); 
0

你可以做一件這樣簡單的事:

char[] charArray = "your string".ToCharArray(); // For example. 
byte[] byteArray = charArray.Select(c => (byte)(c - 32)).ToArray(); 

請注意,如果asciiCharArray的元素少於10個,則代碼將失敗。