Преобразование байтов в строки не выполняется в C#
У меня есть аппаратная часть, которая отправляет данные через Bluetooth. Я пытаюсь их прочитать, но информация не соответствует исходным данным.
Я использую ReadByte для получения данных, которые отправляются по одному.
int i1 = 0;
byte[] datum = new byte[6144];
while (i1 < 6144)
{
datum[i1] = await Task.Run(() => (byte)InmStream.ReadByte());
i1++;
}
string string_ascii = (System.Text.Encoding.ASCII.GetString(datum));
string string_bit = BitConverter.ToString(datum);
string string_base64 = Convert.ToBase64String(datum);
Результаты:
Если я отображаю элементы из созданных строк, я получаю:
string_ascii[0] и [3] = 3 и 3 ([1] и [2] являются \r & \n)
string_bit [0] и [3] = 3 и 0 ([1] и [2] равны \r & \n)
string_base64 [0] и [3] = M и K ([1] и [2] являются \r & \n)
Должно быть всегда: 3 и 35 (формат данных, отправляемых с аппаратного обеспечения: целое число \ r \ n)
Очевидно, что если я попытаюсь преобразовать одни и те же элементы в целые числа, результаты не будут такими, как мне нужно.
ascii[i] = (int)Char.GetNumericValue(string_ascii[i]);
bit[i] = (int)Char.GetNumericValue(string_bit[i]);
base64[i] = (int)Char.GetNumericValue(string_base64[i]);
Я получил:
ascii [0] и [3] = 3 и 3
бит [0] и [3] = 3 и 0
base64 [0] и [3] = -1 и -1
PS. Я заметил, что когда есть 1-значные целые числа, код работает нормально.
Как это исправить? Заранее спасибо.