Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
 Аватар для carga2
11 / 9 / 6
Регистрация: 07.11.2013
Сообщений: 335

Преобразовать массив байт в десятичное число

26.03.2018, 18:12. Показов 5313. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, товарищи!
Есть массив байт
C#
1
byte[] bytes = { 48, 51, 48, 48 };
где элементы массива представляют собой символы Unicode, представленные в десятичной системе, т.е. согласно
https://unicode-table.com/ru/#0030
Номер в Юникоде: U+0030
HTML-код: 0
и
https://unicode-table.com/ru/#0033
Номер в Юникоде: U+0033
HTML-код: 3
Преобразовав массив байт в десятичное число должно получиться 768.
Как произвести такое преобразование?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2018, 18:12
Ответы с готовыми решениями:

Преобразовать число в массив байт
Приветствую уважаемые форумчане, есть задача преобразовать целое число с максимальным значением 16777215 или в HEX = FFFFFF. Число...

Циклы - преобразовать число в десятичное
Доброго времени суток, помогите пожалуйста с задачей: Написать программу на языке программирования, которая преобразует введённое...

Преобразовать строку восьмеричных цифр в эквивалентное ей целое десятичное число
Кому не сложно, помогите разобраться, мне нужна функция , чтобы преобразовать строку восьмеричных цифр в эквивалентное ей целое десятичное...

4
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
26.03.2018, 18:19
C#
1
2
3
4
5
6
            byte[] bytes = { 48, 51, 48, 48 };
 
            for (int i = 0; i < bytes.Length; i++)
                bytes[i] -= 48;
 
            int j = BitConverter.ToInt32(bytes, 0);
0
 Аватар для carga2
11 / 9 / 6
Регистрация: 07.11.2013
Сообщений: 335
26.03.2018, 18:44  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
C#
1
2
3
4
5
6
            byte[] bytes = { 48, 51, 48, 48 };
 
            for (int i = 0; i < bytes.Length; i++)
                bytes[i] -= 48;
 
            int j = BitConverter.ToInt32(bytes, 0);
Спасибо за ответ, но немного не то.
В массиве байт находятся символы юникода, которые представлены десятичным числом, т.е.
48, 51, 48, 48 переводим в символы юникода - 0, 3, 0, 0. После этого 0300 переводим из шестнадцатиричного формата в десятичный. Я что-то сообразить уже не могу(
Число двухбайтовое должно получиться.
Там протокол такой дурацкий.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
26.03.2018, 19:21
Так чтоли?
C#
1
2
3
4
5
6
7
8
9
10
            byte[] bytes = { 48, 51, 48, 48 };
 
            int j = 0;
 
            for (int i = 0; i < bytes.Length; i++)
            {
                j |= (bytes[bytes.Length - i - 1] - 48) << 4 * i;
            }
 
            Console.WriteLine(j);
0
 Аватар для carga2
11 / 9 / 6
Регистрация: 07.11.2013
Сообщений: 335
27.03.2018, 07:50  [ТС]
Someone007, спасибо за ответ. Не могли бы вы объяснить как это работает
C#
1
j |= (bytes[bytes.Length - i - 1] - 48) << 4 * i;
, если вас не затруднит, конечно?

Добавлено через 3 минуты
Такой массив байт будет преобразован неверно
C#
1
byte[] bytes = { 45, 46, 42, 46 };
Добавлено через 11 минут
На массив выше не смотрите, он не верно записан
Вот такой массив преобразуется неверно
C#
1
  byte[] bytes = { 69, 70, 66, 70 };
Добавлено через 39 минут
Извините, я, наверное, не понятно объяснила суть задачи.
Вот так я решила свою задачу
C#
1
2
3
byte[] bytes = { 48, 51, 48, 48 };
            int result;
            result = int.Parse(Encoding.Default.GetString(bytes), System.Globalization.NumberStyles.HexNumber);
result=768
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2018, 07:50
Помогаю со студенческими работами здесь

не получаеться преобразовать 8 ьит в 1 байт (биты в десятичное число)
вот код надо написать на с++ но решил на дельфи но он не работает что то как будто проскакивает последний разряд const _SIZE =...

Преобразовать двоичное число(представлено как массив) в десятичное
Надо перевести двоичное число, представленное массивом в десятичную СС. Решение, возможно простое, но мне потребуется пару дней чтобы...

Как преобразовать число в массив байт
int n = 222333; // hex: 0003647D нужно получить массив байт из переменной n вида: byte m = {0x00, 0x03, 0x64 ,0x7D}; // порядок...

Преобразовать строку содержащую шестнадцатеричное число в десятичное число типа INT
TCHAR string = &quot;A7D&quot;; ... INT value = 2685; Как преобразовать?

Преобразовать введенное пользователем десятичное число в число в указанной системе счисления
Написать программу на языке си, которая преобразует введенное пользователем десятичное число в число в указанной системе счисления (от 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru