![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы |
![]() |
#1 |
Пользователь
Регистрация: 19.04.2007
Сообщений: 35
|
![]()
Доброго времени суток всем!
Возник такой вопрос: как выдрать значение отдельного бита из переменной (например типа int)? Т.е. когда я задаю int a=13, то в битовом представлении получается а=0000 0000 0000 1101. Нужно считать все 0 и 1 и занести их в массив для дальнейшей обработки. Заранее благодарен ) ЗЫ. Знаком с битовыми операциями типа >>, <<, ^, &, |, но имхо их недостаточно для решения данной задачи. |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,572
|
![]()
Достаточно. Смещаете вправо число и смотрите что в нулевом бите посредством & и так пока число не станет равно нулю. Если я еще не забыл логические операции, то как-то так будет:
Код:
|
![]() |
![]() |
#3 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
![]()
Только там не a >> 1, а a >>= 1, а то зациклится
|
![]() |
![]() |
#4 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
![]()
можно еще вот так:
Код:
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,572
|
![]()
Если только компилятор структуру не решит оптимизировать и не сделает b0 и другие размером в 4 байта
![]() |
![]() |
![]() |
#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 21: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 |
|
|
|