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

Байты в биты

28.11.2007, 16:02. Показов 23882. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте коллеги!

Подскажите пожалуйста,каким образом можно байт разложить на составляющие биты. 1байт в 8 бит???
допустим у меня есть число 7 в 8-битном формате 00000111, каким образом можно было бы с помощью языка C# вытащить эти три единицы чтобы затем их использовать ...

Заранее спасибо за ответ.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.11.2007, 16:02
Ответы с готовыми решениями:

Байты в биты
Как перевести байты в биты, причем так, чтобы самому можно было выбирать, какие биты бы соответствовали байтам. То есть, к примеру, символ...

Декодировать байты (в base64) в просто байты
Добрый день, нужно декодировать байты, которые зашифрованы в base64 в нормальные баты вот код : internal sbyte mSecret; ...

Биты и байты
Сколько нужно битов для адресации 64560 килобайтов, 2 мегабайта, 17 мегабайтов, 5 гигабайтов?

11
0 / 0 / 0
Регистрация: 31.10.2007
Сообщений: 26
28.11.2007, 17:14  [ТС]
Конкретезирую вопрос

Я пишу программу для работы с устройством в modbus протоколе....так вот...у меня есть функции для чтения holding и input(байты-аналоговые величины)), а вот для чтения coil и discret(биты-дискретные ) нет.

В modbus есть такая функция - 01 она для чтения Coil. ЕЕ я и пытаюсь реализовать, на основе функции для чтения holding (03) , в этой функции используються операции для работы с байтами. А мне как раз чтобы получить состояния Coil нужно сначала вытащить байт из сообщения modbus, затем разложить его на составляющие биты....они и будут являться битами состояния выходов устройства, а затем их уже вывести на форму,типа SCADA получаеться...только для одного устройства...
0
Администратор
 Аватар для mik-a-el
87825 / 53146 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
28.11.2007, 17:37
Данные какого типа приходят?
Если число, то можно использовать оператор >> (побитовый сдвиг вправо).
0
0 / 0 / 0
Регистрация: 31.10.2007
Сообщений: 26
28.11.2007, 17:49  [ТС]
проходит число...
например...на порт подаеться запрос modbus : 01 01 00 00 00 01 XX XX , XX-это CRC
а в ответ от устройства должно идти : 01 01 01 xx XX XX , xx - это данные которые необходимо вывести на форму , они в формате hex.
Вот эти то данные (они занимают 1 байт - 8 бит) мне и нужно разложить на биты и отдельные биты уже выводить на форму. Ответов от устройства может быть и не один...все зависит от того сколько я захочу прочитать выходов устройства....например если мне нужно будит прочитать 9 выходов то естесно они в один ответ не уложаться и модбасом будит инициирован еще один байт...в котором мне будет нужен только один единственный....
0
Администратор
 Аватар для mik-a-el
87825 / 53146 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
28.11.2007, 18:03
Цитата Сообщение от arkonst
проходит число...
Если так, то см. пост 3.
0
0 / 0 / 0
Регистрация: 31.10.2007
Сообщений: 26
29.11.2007, 10:35  [ТС]
Цитата Сообщение от mik-a-el Посмотреть сообщение
Если так, то см. пост 3.
Хорошо...тогда как используя побитовый оператор << >> можно выделить нужный бит....например из 00000111 выделить предпоследнюю единицу,?? желательно на примере.
0
Администратор
 Аватар для mik-a-el
87825 / 53146 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
29.11.2007, 12:34
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Хм... Что-то поспешил я со сдвигами...
Вот функция, преобразующая число в двоичное в виде строки:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        private string Int2Bin(int num)
        {
            string result = string.Empty;
 
            for (int i = sizeof(int) * 8 - 1; i >= 0; i--)
            {
                if ((num & (1 << i)) != 0)
                    result += '1';
                else
                    result += '0';
            }
 
            return result;
        }
Далее просто вытаскиваешь из строки нужный символ.
0
0 / 0 / 0
Регистрация: 31.10.2007
Сообщений: 26
29.11.2007, 14:38  [ТС]
а вопрос тогда, в каком формате число должно быть??? ведь если оно в десятичном то результат будет один, а если в hex-е то совершенно другой....мне нужно для hex представления числа
0
Администратор
 Аватар для mik-a-el
87825 / 53146 / 249
Регистрация: 10.04.2006
Сообщений: 13,761
29.11.2007, 15:07
Цитата Сообщение от arkonst
мне нужно для hex представления числа
Передай это число в функцию, будет работать. Если вдруг число не влезет, вместо int возьми long.
0
1 / 1 / 0
Регистрация: 25.02.2016
Сообщений: 5
15.04.2016, 21:00
Решение здесь: Перевод байта в бит и обратно
0
16.04.2016, 01:13

Не по теме:

AlexSolder, могли бы и десятилетия темы подождать, было бы эпичней.

0
02.05.2017, 17:01

Не по теме:

во, теперь смело можно закрывать тему)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.05.2017, 17:01
Помогаю со студенческими работами здесь

Конвертер - байты в биты
Добрый вечер! Напишите пожалуйста формулу, по которой можно решить данное задание, вводя в edit1 число и по нажатию кнопки выводя...

Биты и байты в алгоритме Хаффмана
Пишу программу на С, в которой нужно реализовать метод кодирования Хаффмана. Код не буду прикладывать, так как в нём в принципе для меня...

Пентагон прировнял биты и байты к пулям и бомбам.
«В XXI веке биты и байты могут представлять такую же угрозу, как пули и бомбы. Нажатие на клавишу компьютера в одной стране может привести...

Перевести величину в мегабайтах в биты/байты/килобайты/гигабайты
Дана емкость винчестера V в мегабайтах. Написать программу, которая бы по введенному номеру единицы измерения информации(1 – бит, 2 –...

Биты, байты. Циклически сдвинуть на 4 разряда вправо четное число.
В массиве Х чисел типа short обработать каждое число согласно условиям: Циклически сдвинуть на 4 разряда вправо четное число....


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru