|
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
|
|
битовая маска23.09.2008, 15:44. Показов 45161. Ответов 28
Метки нет (Все метки)
как использовать битовую маску? за пример можно взять выделение k-того разряда из n-разрядного числа (в пофиг какой системе исчесления).
0
|
|
| 23.09.2008, 15:44 | |
|
Ответы с готовыми решениями:
28
битовая маска
Как обратиться к объекту bitset так, чтобы результатом была битовая маска |
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 23.09.2008, 17:08 | |
|
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
||
| 23.09.2008, 17:09 | ||
|
0
|
||
|
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
|
|
| 23.09.2008, 17:16 [ТС] | |
|
ну, можно много еще чего придумать.
мне нужно обрабатывать числа, вводимые с клавиатуры, с каждым разрядом работать отдельно.
0
|
|
|
42 / 42 / 4
Регистрация: 14.09.2008
Сообщений: 683
|
|
| 05.10.2008, 12:34 | |
|
Ну а еще проще:
Под 1 байт отводится 8 бит максимальное число 11111111 = 286331153 Соответсвенно 2 байта 8*2 = 16(единиц максимальное число) 3 байта 8*3 = 24(единиц максимальное число) 4 байта 8*4 = 32(единиц максимальное число) 120 = 1111000(тут 7 бит из 8 ) поэтому недостающие биты пишем 0 120 = 01111000 но в идеале первой всегда идет 1. 10 = 1010(4 из 8 ) 10 = 00001010 120 и 10 влазят в 1 байт поэтому недостающие биты ставим в 0. Если бы это было число по больше использующее к примеру 2 байта(16 бит) 0000000111111111 тут 9 единиц значит уже больше 1 байта поэтому в 0 мы выставляем все остальное до 16 бит. & - операция оставляет 1 там где бит = 1 в обоих числах. 01111000 & 00001010 --------- 00001000 Тут и на глаз видно, что 1 только в одном месте остается. Получаем 1000 в 16 системе. Если что не так написал, не ругайте))) Я это понимаю именно так)
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 05.10.2008, 12:41 | |
|
TGrey[WoLf], все это хорошо и красиво,просто беда в том, что ему не бит нужен, а разряд в числе... мы поначалу ему тоже про булевую алгебру рассказывали
0
|
|
|
4y4z
|
||
| 12.02.2010, 13:20 | ||
|
Итак следующая проблема: есть char buff[24]; Согласно спецификации это строка вида AAABBBCCDDEFGHIJKLLLLMM. ААА - 3-байтовое значение, где младшие 23 бита это целое неотрицательное число и т.д. Как правильно выделить эти самые младшие биты из числа? Корректен ли в данном случае такое вариант: uint value = (buff[0]) | (buff[1] << 8) | (buff[2] << 16); Или же нужно накладывать битовые маски на целочисленное представление этих самых трех байт? ТО есть к примеру для E (целое неотрицательное число от 0 до 127) из этого же самого буфера получение младших 7 бит будет так: E = E&01111111; |
||
|
230 / 227 / 65
Регистрация: 18.12.2009
Сообщений: 316
|
|
| 12.02.2010, 16:05 | |
|
Все правильно сделали. Просто под конец нужна маска. Ведь Вы хотите затереть 24-ый бит.
тогда Value|=buff[0]|buff[1]<<8|buff[2]<<16; Value&=0x7FFFFF; 7FFFFF это 23 бита установленые в 1 и 24-ый в 0 В данном случае легко использовать 16 ричное представление, для определения маски.
0
|
|
|
|
|
| 12.02.2010, 17:19 | |
|
MsDos, я правильно понимаю, что постановка задачи следующая: например есть число в десятичной записи 1234567. Нужно выделить в этой десятичной записи третий с конца десятичный разряд (т.е. 5). Так чтоли? Если так, что через битовые операции этого не сделать
0
|
|
|
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87
|
||||||
| 11.03.2015, 13:16 | ||||||
|
Помогите разобраться с битовой маской, есть вектор F[10] равный в dec 137 hex 89 bin 10001001 Применяю сдвиг и маску
cout <<bitset<8>((F[10]>> 4)& 00000111); Получаю: 00001000 Я не понимаю как так выходит, если я сдвинул на четыре вправо остается 00001000 применяем маску 00000111 должно было выйти 00000000 Что я не верно делаю??? скидываю свой код если нужен.
Исправил косяк был в использовании двоичного кода надо было вместо 00000111 писать 7
0
|
||||||
| 11.03.2015, 13:16 | |
|
Битовая сортировка!
Битовая арифметика Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|