[an error occurred while processing this directive]
Как на СИ установить некоторое количество бит в некоторое значение по некоторой маске?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
=NIK=
07 июля 2006 г. 15:59
Составить ответ
|||
Конференция
|||
Архив
Ответы
#define set_field(dst, src, mask, nbit) dst = (dst & ~mask) | ((src << nbit) & mask) или пользоваться структурами из битовых полей.
—
SM
(07.07.2006 16:05
213.141.159.26
, 92 байт)
Тут проще можно: dst |= mask; Или нет?
—
_Bill
(07.07.2006 16:36
193.233.82.10
,
пустое
)
А кто вычистит старое поле из dst?
—
SM
(07.07.2006 16:37
213.141.159.26
,
пустое
)
Так надо же просто установить. Старое значение не важно. Просто те разряды, которые были уже в 1, своего состояния не изменят.
—
_Bill
(07.07.2006 16:57
193.233.82.10
,
пустое
)
Так их "в некоторое значение" установить надо. Оно не обязательно 1 :)
—
SM
(07.07.2006 16:58
213.141.159.26
,
пустое
)
Да, весьма существенное замечание. Просмотрел.
—
_Bill
(07.07.2006 17:06
193.233.82.10
,
пустое
)
А где мне еще таких полезных и часто применяемых дефайнов набрать? Я начинающий, мне бы это было очень полезно...
—
=NIK=
(07.07.2006 16:10
213.221.24.178
,
пустое
)
Самому написать :) Я их не коллекционирую....
—
SM
(07.07.2006 16:12
213.141.159.26
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru