Преобразование байтов в числа - C#

Узнай цену своей работы

Формулировка задачи:

Привет. помогите пожалуйста разобраться с форматом чисел, подозреваю что чего-то не знаю про C#, никогда на нем не программировал. Есть некий протокол обмена, полученый снифером. В нем выделено и найдено все, за исключением способа передачи целого числа. Я точно знаю что в программу приходит по сети, и что она показывает на экране. Как из одного получить другое - ума не приложу. Примеры: как из F4 03 (16-я система) получить 500 (в десятичной системе) как из С4 13 получить 2500 как из 9С 12 получить 2332 как из 80 13 получить 2432 и так далее. Вот еще головоломка - из

F2 DA A5 02 получить 4812146

!!! Что интересно, форматы double прекрасно читаются, из чего я делаю вывод что никакого специального шифрования в проге не применяется. Затык возможно где-то в приведении типов. Пример нормального double: пришло A4 70 3D 0A D7 83 5C 40, получил 114.06 (как и надо). С помощью дизасемблера получил следующие строки: Output = new double?((double) Input.Value) где Input - входящая переменная типа long, Output - типа double КАК ЭТО из Input=80 13 делает Output=2432 ??? (ничего противозаконного, хочу баг пофиксить в проге которая уже не поддерживается)
Что интересно, Если приходит 64 получается 100. То есть однобайтовые числа никакому преобразованию не подвергаются.

Решение задачи: «Преобразование байтов в числа»

textual
Листинг программы
static byte[] Reverse(byte[] dwOriginalBytes)
        {
            byte[] dwBuffer = new byte[dwOriginalBytes.Length];
            for (int i = 0; i < dwBuffer.Length; i++)
                dwBuffer[(dwBuffer.Length - i) - 1] = dwOriginalBytes[i];
 
            return dwBuffer;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы