A:> Вариантов огромное кол-во. Imho наиболее просто пользоваться
логическими функциями OR и AND. Hапример:
Включить(сделать единицей =) первый бит в переменной b
b:=b or 1;
Включить второй бит в переменной b
b:=b or 2;
третий:
b:=b or 4;
Для проверки включённости бита можно юзать AND.
То есть выражение (b and 1 <> 0) будет true, если первый бит
включён. Думаю, идея ясна, а извращаться можно уж как угодно:
писать функции и процедуры, что тоже есть рулез.
Другой вариант выключения/сброса бита
procedure SetBit(var B : Byte; BitNo : Byte);
begin
B := B or ($01 shl BitNo);
end;
procedure ResetBit(var B : Byte; BitNo : Byte);
begin
B := B and (not ($01 shl BitNo));
end;