![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как присвоить значение i-му биту integer? [D6]
AFrolov © (2002-09-16 11:49:00)var
msk,msk1:integer;
begin
msk1:=msk or 4;//- переводит 2-й бит в 1 это работает
msk1:=msk not 4;//- переводит 2-й бит в 0 здесь компилятор ругается :-(
Заранее спасибо.
Alx2 (2002-09-16 12:34:00) [1]>Внук © (16.09.02 12:07)
Действительно, нечего
:)
Внук (2002-09-16 12:07:00) [2]Это не извращение, это дурацкая привычка доводить константы до конечного вида без помощи компилятора :)
4 ведь он откуда то взял :)
А то вот еще более простое -
msk1:=msk AND not shl 2;
тут вообще ничего считать не надо :)
Anatoly Podgoretsky (2002-09-16 12:01:00) [3]И зачем это изврощение?
AND not 4 нормальная, читаемая конструкция.
AFrolov (2002-09-16 11:58:00) [4]спасибо
Внук (2002-09-16 11:56:00) [5]И вообще $FFFFFFFD :)))
Внук (2002-09-16 11:55:00) [6]msk1:=msk and $FFFFFFFC - забыл $ :)
Обычно для выставления битов используется логическое сложение (OR), а для снятия - логическое умножение (AND)
Внук (2002-09-16 11:53:00) [7]msk1:=msk and FFFFFFFC
Polevi (2002-09-16 11:52:00) [8]and not
Shaman_Naydak (2002-09-16 11:52:00) [9]msk1:=msk AND not 4;//