2016-10-07 5 views
0

Я пытаюсь преобразовать массив символов в байт. Но я получаю ошибку ниже:Преобразование 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 элементов.

Смежные вопросы