разбор массива байтов

В общем не выходит пересчитать :

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

По сути надо написать обработку строки(парсер) но я просто даже примеров не могу найти в книгах только синтаксис языка а в сети "пусто".


Ответы (0 шт):