Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.97/190: Рейтинг темы: голосов - 190, средняя оценка - 4.97
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
1

битовая маска

23.09.2008, 15:44. Просмотров 34716. Ответов 28
Метки нет (Все метки)

как использовать битовую маску? за пример можно взять выделение k-того разряда из n-разрядного числа (в пофиг какой системе исчесления).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2008, 15:44
Ответы с готовыми решениями:

Битовая маска
Как в шифровании битовыми перестановками применить маску?

битовая маска
надо разработать функцию проверки правильности битовой маски. 32-х битная...

Как обратиться к объекту bitset так, чтобы результатом была битовая маска
Здравствуйте, для образовательных целей решил научится работать с bitset, как я...

"Битовая Маска"
Всем доброго времени суток, очень долго мучаюсь на битовыми операциями, а...

Битовая сортировка!
Всем привет. Нужно написать реферат по теме "Битовая сортировка". Такого в...

28
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
23.09.2008, 15:52 2
В смысле? Ну, ее можно использовать с булевыми операциями: например & или |. Любое число, по сути - битовая маска. Потом применяешь это число и булеву операцию на еще один операнд.
Ну например, чтобы взять 1-й бит числа, нужно применить к нему & и 10000000.
Вообщем, нужно просто знать двоичное представление числа и все. И булеву алгебру.
1
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
23.09.2008, 16:21  [ТС] 3
значит, это действительно так просто.

Добавлено через 37 секунд
благодарю
0
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
23.09.2008, 16:21 4
Цитата Сообщение от MsDos Посмотреть сообщение
значит, это действительно так просто.

Добавлено через 37 секунд
благодарю
Именно
0
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
23.09.2008, 16:24  [ТС] 5
а придумывается ли что-нибудь подобное на десятеричные числа?
0
Lord_Voodoo
Супер-модератор
8611 / 2245 / 133
Регистрация: 07.03.2007
Сообщений: 10,839
Завершенные тесты: 1
23.09.2008, 16:30 6
а булевой алгебре неважно в какой системе счисления число, правила работают везде аналогично...
0
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
23.09.2008, 16:31 7
Хех. Какая разница? Все равно, все они в машине представленны в виде 1 и 0. Машина вообще понятия не имеет, с какими числами ты работаешь: десятичные, шестнадцатеричные...
0
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
23.09.2008, 16:38  [ТС] 8
хым.
120 & 10 = 2?

Добавлено через 1 минуту 14 секунд
бред, по-моему, а 12 & 3 тогда что выходит?
0
Lord_Voodoo
Супер-модератор
8611 / 2245 / 133
Регистрация: 07.03.2007
Сообщений: 10,839
Завершенные тесты: 1
23.09.2008, 16:41 9
погоди, 120 & 10 = 8 => 1111000 & 1010 = 1000
0
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
23.09.2008, 16:45 10
Цитата Сообщение от WooDooMan Посмотреть сообщение
погоди, 120 & 10 = 8 => 1111000 & 1010 = 1000
Вот так, наверное, понятнее будет:
120 & 10 = 8 => 01111000 & 00001010 => 8 (00001000)
То есть один разряд у нас остается. Там, где единица в обоих числах.
1
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
23.09.2008, 16:47  [ТС] 11
угу, уже ясно. только мною подразумевалось как раз именно выделение разряда числа: можно ли придумать такие манипуляции с маской, чтобы именно разряд десятеричного числа выделить.
мне эта вещь очень часто нужна, а деления с остатками меня утомляют, криво как-то.
0
Lord_Voodoo
Супер-модератор
8611 / 2245 / 133
Регистрация: 07.03.2007
Сообщений: 10,839
Завершенные тесты: 1
23.09.2008, 16:47 12
Цитата Сообщение от Vourhey Посмотреть сообщение
Вот так, наверное, понятнее будет:
120 & 10 = 8 => 01111000 & 00001010 => 8
То есть один разряд у нас остается. Там, где единица в обоих числах.
считаю, что человеку неплохо было бы сначала все же прочесть что-нить про эту пресловутую алгебру, карты функций посмотреть, а то будет сложно что-то объяснить
0
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
23.09.2008, 16:49 13
Цитата Сообщение от WooDooMan Посмотреть сообщение
считаю, что человеку неплохо было бы сначала все же прочесть что-нить про эту пресловутую алгебру, карты функций посмотреть, а то будет сложно что-то объяснить
Согласен. А то он двойку уже получил
0
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
23.09.2008, 16:50  [ТС] 14
я знаю дискретную математику, булевую алгебру, интегральные схемы и т.д. и т.п.
я сейчас об алгоритмах, вы чет слишком на битах зацикливаетесь.
0
Lord_Voodoo
Супер-модератор
8611 / 2245 / 133
Регистрация: 07.03.2007
Сообщений: 10,839
Завершенные тесты: 1
23.09.2008, 16:52 15
ну так ты озвучь, что именно тебе надо... если биты вырезать, то без побитовых логических операций никуда...
0
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
23.09.2008, 16:55 16
Ну тут, я думаю, та же байда, только нужно выяснить, какой бит будет заполнен для каждого разряда. Каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа.
0
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
23.09.2008, 17:01  [ТС] 17
меня и волнует единозначно ли будет соответствовать битовый коплекс разряду, что для меня уже ясно. но, кажется, проще выходит делить, чем расписывать маски.
0
Lord_Voodoo
Супер-модератор
8611 / 2245 / 133
Регистрация: 07.03.2007
Сообщений: 10,839
Завершенные тесты: 1
23.09.2008, 17:03 18
я когда с периферийными устройствами работал по ком-порту, там куча флагов была, и приходилось вырезать по средствам побитовых операций, и никаких не удобств не было... и ты точно знаешь, какой бит анализируешь, но раз так надо делить, кто против, можно и делением это делать...
0
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
23.09.2008, 17:04 19
Маски - быстрее работают просто. Делить, конечно, проще.
0
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
23.09.2008, 17:05  [ТС] 20
черт, меня осенила вполне красивая идея без применения каких-либо манипуляций!

Добавлено через 1 минуту 30 секунд
дадада, потому у меня и была такая страсть свести все к ним. но теперь все проще: я просто буду считывать посимвольно и сразу обрабатывать результат
0
23.09.2008, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2008, 17:05

Битовая арифметика
Почему при: int myVar = 15, mask = 0x00 00 00 01; //выделил разряды...

С, битовая запись
Всем доброго времени суток, после 3 дней поиска информации решил попытать...

Битовая инверсия
Доброго времени суток! Я что-то запутался с побитовой инверсией. В коде...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru