Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как присвоить значение 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;//


Наверх

Титульная страница Поиск, карта сайта Написать письмо