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

Работа с битами

07.04.2015, 15:15. Показов 4791. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, необходимо считать данные из файла. В нем последовательно записаны 3 переменные :X=10 бит; Y = 10 бит и Z=12 бит. Я считал массив байтов, далее BitConverter само собой не работает так как нету стандартных типов такого размера. Что-то додумать как сделать считывание этих переменных в uint не получается.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2015, 15:15
Ответы с готовыми решениями:

Работа с битами числа
Не подскажите как можно инвертировать число?

Работа с битами
Здравствуйте! Подскажите, как работать с битами данных. у меня есть данные и мне нужно иметь возможность изменять с них биты. Как это...

Работа с битами И Работа с символьными данными
1. Ввести 8 символов. В символе с наибольшим кодом заменить 5-й бит единицей, а в символе с наименьшим кодом 6-й бит - нулем. Вывести...

7
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.04.2015, 15:36
Цитата Сообщение от ZaStalim Посмотреть сообщение
X=10 бит; Y = 10 бит и Z=12 бит.
10+10+12=32 бита или четыре байта, как раз под размер int.

Считывайте четыре байта, конвертируйте их в инт, а дальше уже вырывайте отдельные биты:
C#
1
2
3
4
5
6
byte[] bytes = ReadFromFile(4);
uint bcd = BitConverter.ToUInt32(bytes, 0);
 
int x = (int)(bcd & 0x3FF);
int y = (int)((bcd >> 10) & 0x3FF);
int z = (int)((bcd >> 22) & 0xFFF);
1
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
07.04.2015, 15:37
ZaStalim, BitReader - класс для побитового чтения массива байт
1
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
07.04.2015, 15:47
kolorotur, по-моему в случае для z нужно сдвиг на 20 бит делать, а не на 22.
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.04.2015, 15:51
Цитата Сообщение от IamRain Посмотреть сообщение
по-моему в случае для z нужно сдвиг на 20 бит делать, а не на 22.
Ну конечно.
Спасибо за поправку!
0
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 163
07.04.2015, 16:00  [ТС]
Спасибо, я вот только не понял а в чем смысл умножения на 0x3FF???
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
07.04.2015, 16:08
Цитата Сообщение от ZaStalim Посмотреть сообщение
Спасибо, я вот только не понял а в чем смысл умножения на 0x3FF???
3FF - это 32-разрядное число с 10 младшими единицами.
Собственно, поразрядная конъюнкция с этим числом позволяет вам вытаскивать нужные биты. Почитайте про операции логического и/или.

Добавлено через 2 минуты
Именно побитового и/или.
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.04.2015, 16:09
Цитата Сообщение от ZaStalim Посмотреть сообщение
в чем смысл умножения на 0x3FF?
Это не просто умножение, а логическое умножение!
Другими словами — маска, т.к. 3FF16 — это 11111111112, то есть 10 бит установлено в единицу.
Если сделать логическое И этой маски с любым числом, то результат будет только первые 10 бит изначального числа:
1010 1010 1010 1010 1010 1010 1010 1010
0000 0000 0000 0000 0000 0011 1111 1111
------------------------------------------
0000 0000 0000 0000 0000 0010 1010 1010
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2015, 16:09
Помогаю со студенческими работами здесь

Работа с битами
Всем привет, переписываю проект с С на Ассемблерб столкнулся с проблемой! есть простая классическая конструкция на С: unsigned char...

Работа с битами
Прошу помощи. Реализовать алгоритм зеркального отображения тетрад битов значения целого числа без знака. Значение переменной, подлежащей...

Работа с битами
Вообщем в чём проблема. Предположим у нас есть какая то переменная, значение которой я хочу указать побитно (или кодом): Program...

! работа с битами !
Есть таблица, одно из полей которой (ProcessFlag) содержит целое число. Нужно в SQL запросе узнать, являются ли два младших бита...

Работа с битами
Стоит задача: вывести все двоичные коды чисел от 0 и до 2n-1. Сделать напролом могу(переводить в цикле каждое число в двоичную с-му и...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru