СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как в Delphi работать с битами?

Ответ

Есть два способа.
Hизкоуровневый подход обеспечивается логическими операциями :

var
    I : integer;
    N : integer; // Hомер бита в диапазоне от
0..SizeOf(TYPE)*8 — 1

  I := I or (1 shl N); // установка бита
  I := I and not (1 shl N); // сброс бита
  I := I xor (1 shl N); // инверсия бита
if (i and (1 shl N)) <> 0 then… // проверка установленного бита

Высокоуровневый подход опирается на представление числа в виде множества:

type
    TIntegerSet = set of 0..SizeOf(Integer)*8 — 1;
var
    I : Integer;
    N : Integer;

  Include(TIntegerSet(I), N); // установили N-ный бит в 1
  Exclude(TIntegerSet(I), N); // сбросили N-ный бит в 0
  if N in TIntegerSet(I) then… // проверили N-ный бит


Из конференции Delphi



Copyright © 2000-2004 Сообщество Чайников
Контактная информация