|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
29.04.2009, 10:07 | #1 |
Пользователь
Регистрация: 19.04.2007
Сообщений: 35
|
Битовые операции: как узнать значение отдельного бита?
Доброго времени суток всем!
Возник такой вопрос: как выдрать значение отдельного бита из переменной (например типа int)? Т.е. когда я задаю int a=13, то в битовом представлении получается а=0000 0000 0000 1101. Нужно считать все 0 и 1 и занести их в массив для дальнейшей обработки. Заранее благодарен ) ЗЫ. Знаком с битовыми операциями типа >>, <<, ^, &, |, но имхо их недостаточно для решения данной задачи. |
29.04.2009, 10:44 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Достаточно. Смещаете вправо число и смотрите что в нулевом бите посредством & и так пока число не станет равно нулю. Если я еще не забыл логические операции, то как-то так будет:
Код:
|
29.04.2009, 19:22 | #3 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
Только там не a >> 1, а a >>= 1, а то зациклится
|
29.04.2009, 21:04 | #4 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
можно еще вот так:
Код:
|
29.04.2009, 21:12 | #5 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Если только компилятор структуру не решит оптимизировать и не сделает b0 и другие размером в 4 байта
|
30.04.2009, 09:31 | #6 |
Пользователь
Регистрация: 19.04.2007
Сообщений: 35
|
Спасибо за ответы )
pu4koff, код немного подправил: строчку "a >>= 1;" следует дописать после проверки условия (if-else), иначе в массиве теряется значение нулевого бита. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Битовые операции, проблемы | Sashko | Общие вопросы C/C++ | 2 | 27.03.2009 17:28 |
битовые операции, Pascal | TOSAgrk | Помощь студентам | 2 | 02.02.2009 17:41 |
Битовые операции | DrAlexx2121 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 14.06.2008 22:26 |
Битовые операции | LEX.darnica | Помощь студентам | 14 | 23.12.2007 19:40 |
Битовые операции | zetrix | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 15.12.2006 11:08 |