| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > установка/сброс бита |
| Автор: JS2 23.3.2010, 14:34 | ||
Почему Res возвращает вместо 76 - 12? Что нет так? Ведь по сути установил бит/сбросил должно вернуть 76. |
| Автор: Snowy 23.3.2010, 14:55 |
| Потому что 76 = $4C $4C or $40 = $4C $4C and (-1 xor $4C) = $C $C = 12 Ты не установил бит $40 - он уже был установлен. А при снятии исчез... |
| Автор: JS2 23.3.2010, 15:05 |
| подскажите как сделать нижеописанное, а то я совсем запутался с битами. Нужно для байта установить 1, 2 биты. Дальше записать изменненный байт в стрим. После считать байт со стрима и и проверить установки битов. Сбросить установленные биты, получить первоначальный байт. |
| Автор: Snowy 23.3.2010, 15:19 |
| Всё верно, за исключением того, что первый и второй бит - это не $80 и $40, а 1 и 2 Только неясно, зачем потребовались абсолютные переменные. |
| Автор: JS2 23.3.2010, 15:25 | ||
лично для меня так проще разбить 4байтовое значение на массив 1байтовых |