Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 2

Из строк составить массив байт

02.09.2016, 17:11. Показов 1931. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть несколько непустых строк типа strng с информацией типа (hex значения):
C#
1
2
3
string s1 = "01 02 03 04 0A 0B 0C 0D"
string s2 = "05 06 07 08 0E 0F"
string s3 = "09 00 11 22"
Задача состоит в том, чтобы объединить эти строки в массив байт вида:
C#
1
byte[] res = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x0A, 0x0B, 0x0C, 0x0D, 0x05 0x06, 0x07, 0x08, 0x0E, 0x0F, 0x09, 0x00, 0x11, 0x22 }
Но как это сделать без понятия. Буду благодарен, если поможете.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2016, 17:11
Ответы с готовыми решениями:

Дан массив из 11 байт. Подсчитать количество байт с нечетным числом 1 в байте
Дан массив из 11 байт. Подсчитать количество байт с нечетным числом 1 в байте.-Assembler помогите пожалуйста

Дан массив из 10 байт. Посчитать количество байт, в которых сброшены 6 и 4 биты
Дан массив из 10 байт. Посчитать количество байт,в которых сброшены 6 и 4 биты. Массив байтов размещается начиная с DS:0000h. Ответ должен...

Дан массив из 10 байт. Посчитать количество байт содержащих ровно три единицы
Здравствуйте, возникла проблема с решением задачи: "Дан массив из 10 байт. Посчитать количество байт содержащих ровно три...

4
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
02.09.2016, 17:51
Лучший ответ Сообщение было отмечено decdarkness как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
           string[] s = {"01 02 03 04 0A 0B 0C 0D",
                          "05 06 07 08 0E 0F",
                          "09 00 11 22"};
            byte[] res = new byte[0];
            int sz=0;
            for (int i = 0; i < s.Length; i++)
            {
                string[] a = s[i].Split(' ');
                for (int j = 0; j < a.Length; j++)
                {
                    Array.Resize(ref res, ++sz);
                    res[sz - 1] = Convert.ToByte(a[j], 16);
                }
            }
            for (int i = 0; i < sz; i++)
                Console.Write("0x{0:X} ", res[i]);
1
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
02.09.2016, 18:52
Цитата Сообщение от decdarkness Посмотреть сообщение
как это сделать без понятия
Как вариант.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
 
namespace ConsoleApplication40 {
    class Program {
        static void Main(string[] args) {
            string[] strings = {"01 02 03 04 0A 0B 0C 0D",
                                "05 06 07 08 0E 0F",
                                "09 00 11 22"};
            var data = strings.Select(s => s.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(i => byte.Parse(i, NumberStyles.HexNumber)));
            List<byte> outData = new List<byte>();
            data.ToList().ForEach(b => outData.AddRange(b));
        }
    }
}
1
0 / 0 / 0
Регистрация: 02.09.2016
Сообщений: 2
02.09.2016, 20:47  [ТС]
Простите, господа, за мои незнания, на C# пишу довольно таки не долго. Знаю, что наглею, но это очень нужно.. Опишу по-подробнее задачу: есть метод, принимающий в качестве аргумента byte[] массив. Мне нужно создать byte[] массив, чтобы передать его в этот метод. Строки s1, s2, s3 каждый раз принимают разные HEX значения. Нужно сформировать единственный byte[] массив из этих строк в последовательности s1 + s2 + s3, чтобы в нем содержалась информация типа:
byte[] b = { 0x00, 0x01, 0x0F }. Где, к примеру s1 = "00", s2 = "01", s3 = "0F". Нужно добавить 0x.
Благодарю за понимание
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
02.09.2016, 21:07
Цитата Сообщение от decdarkness Посмотреть сообщение
Нужно сформировать единственный byte[] массив из этих строк в последовательности s1 + s2 + s3, чтобы в нем содержалась информация типа:
byte[] b = { 0x00, 0x01, 0x0F }
Оба ответа выше это и демонстрируют, собственно.
Цитата Сообщение от decdarkness Посмотреть сообщение
Нужно добавить 0x.
А зачем? Вы можете сказать, что вам надо: получить коллекцию байт из их Hex представления или переписать строковые значения с приставкой 0x? Определитесь, что вам требуется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.09.2016, 21:07
Помогаю со студенческими работами здесь

Дан массив из 6 байт. Посчитать количество байт число единиц, в которых не превышает 3.
Дан массив из 6 байт. Посчитать количество байт число единиц, в ко- торых не превышает 3. блин люди немогу сделать.

Дан массив из 13 байт. Посчитать количество байт содержащих только нули или единицы
ПОЖАЛУЙСТА! РЕШИТЕ ЗАДАЧКИ!!!:) Задача №1 дан массив из 13 байт. посчитать количество байт содержащих только нули или единицы. ...

Дан массив из 11 байт. Посчитать количество байт, в которых нет единиц, стоящих рядом
Дан массив из 11 байт. Посчитать количество байт, в которых нет единиц, стоящих рядом.

Дан массив из 10 байт. Посчитать количество байт с числом единиц в байте равным три
помогите с задачкой! Дан массив из 10 байт. Посчитать количество байт с числом единиц в байте равным три.Вот код,но что тут не правильно...

Вычесть из одного массива байт другой массив байт
Здравствуйте! Подскажите что нужно сделать чтобы из одного массива байт вычесть другой массив байт!


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru