разбор массива байтов
В общем не выходит пересчитать :
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Threading;
using System.Diagnostics;
using System.ComponentModel;
using System.Collections;
using System.Globalization;
class Program
{
static void Main()
{
Console.WriteLine("Тестовая прога.");
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(Console.ReadLine());// считываем строку
// вызов функции запуска
bool a = Issued_mess(bytes);
if (a)
Console.WriteLine("Инициализация прошла успешно");
else
Console.WriteLine("Инициализация прошла отрицательно");
}
static bool Issued_mess(byte[] IssuedMess)
{
string asString=System.Text.Encoding.UTF8.GetString(IssuedMess);
Console.WriteLine("То что ввёл:{0}", asString);
byte NAstr_t = IssuedMess[0];
Console.WriteLine("byte Nastr_t:{0}", NAstr_t);
byte NAstr_t1;
for(int i =0; i<IssuedMess.Length; i++)
{
NAstr_t1 = IssuedMess[i];
Console.WriteLine(IssuedMess[i]);
//Console.WriteLine("один_элемент:{0}", NAstr_t1);
}
byte Nastr = 0xa1; // Маркер о настройке устройства
Console.WriteLine("byte Nastr:{0}", Nastr);
var s = string.Concat(IssuedMess.Select(b => b.ToString("X2", CultureInfo.InvariantCulture)));
Console.WriteLine("s:{0}", s);
return false;
}
}
}
Вот вывод :
comp@comp0:~/Qt_project/TCP_IP$ mono tehn7.exe
Тестовая прога.
0x01
То что ввёл:0x01
byte Nastr_t:48
48
120
48
49
byte Nastr:161
s:30783031
Инициализация прошла отрицательно
comp@comp0:~/Qt_project/TCP_IP$ mono tehn7.exe
Тестовая прога.
0x01 0x02
То что ввёл:0x01 0x02
byte Nastr_t:48
48
120
48
49
32
48
120
48
50
byte Nastr:161
s:307830312030783032
Инициализация прошла отрицательно
comp@comp0:~/Qt_project/TCP_IP$
Мне бы хотелось что бы число к примеру 0xa1 считывалось не по одному символу (48, 120, 48, 49), а именно числом (161 "в десятичке").
И вот как этого достичь я как то не могу понять при этом само количество введенных байт может разниться к примеру может быть так 0xa10x020x03 , а может быть так 0xa1 0x02 0x03
По сути надо написать обработку строки(парсер) но я просто даже примеров не могу найти в книгах только синтаксис языка а в сети "пусто".