Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 771
от 17.06.2007, 21:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 484, Экспертов: 65
В номере:Вопросов: 1, Ответов: 2


Вопрос № 91066: Здравствуйте уважаемые эксперты. Язык Си. В чем разница между оперциями с битовыми полями и операциями с целыми? Поясняю в приложении. Какие выгоды или недостатки каждой из этих операций? ..

Вопрос № 91.066
Здравствуйте уважаемые эксперты.
Язык Си. В чем разница между оперциями с битовыми полями и операциями с целыми? Поясняю в приложении. Какие выгоды или недостатки каждой из этих операций?

Приложение:

Отправлен: 12.06.2007, 13:04
Вопрос задал: Васильев Сергей (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Алексей Демаков
Здравствуйте, Васильев Сергей!

В случае целых можно использовать произвольную маску для проверки значений нескольких битов, для битовых полей такого сделать не получится:
if( (mybits & 0x36)==0 )
С другой стороны, над полями структуры проще делать арифметические операции:
int s = mybits.f1 + ... + mybits.f8;
При выборе структур данных стоит руководствоваться операциями, которые над ними придется выполнять чаще всего. Разница в производительности проявится в очень редких случаях, о которых заранее думать почти нет смысла. Обычно локальную оптимизацию выполняют после написания программы и ее профилирования (то есть подсчета времени, затраченного на выполнение отдельных участков кода).
Ответ отправил: Алексей Демаков (статус: Студент)
Ответ отправлен: 12.06.2007, 15:11
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Исчерпывающий ответ.

Отвечает: Vest
Здравствуйте, Васильев Сергей!
Ещё можно использовать для конвертирования из чисел в структуры. Да кстати, структуры могут быть больше чем sizeof(int). Очень полезно, когда ты имеешь в серёдке числа, несколько общих битов, которые разделять неудобно.
Иногда в серёдке существуют неиспользуемые битовый поля (например для задела на будущее, или для создания некоторых шаблонов с "дырками" по середине)

Приложение:

---------
"Халявы не бывает" (c)

Ответ отправил: Vest (статус: 5-ый класс)
Ответ отправлен: 12.06.2007, 16:06
Оценка за ответ: 4
Комментарий оценки:
Спасибо, вы подсказали мудрую мысль. Но пример плох. Я спрашивал простарый добрый Си без плюсов, который большинство наверное уже забыли.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное