Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
ВнизРабота с битами. Найти похожие ветки
← →
Помогите! (2007-09-03 15:20) [0]Как у байта узнать конкретный бит, например 4, и как установить значение бита?
← →
Сергей М. © (2007-09-03 15:25) [1]
> Как у байта
Так же как у слова или двойного слова
← →
novill © (2007-09-03 15:28) [2]см битовые функции and и or
← →
KJ13 © (2007-09-03 15:33) [3]Есть два способа:
Низкоуровневый подход обеспечивается логическими операциями :var
I : integer;
N : integer; // Номер бита в диапазоне от 0..SizeOf(TYPE)*8 - 1
begin
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... // проверка установленного бита
end;
Высокоуровневый подход опирается на представление числа в виде множества:type
TIntegerSet = set of 0..SizeOf(Integer)*8 - 1;
var
I : Integer;
N : Integer;
begin
Include(TIntegerSet(I), N); // установили N-ный бит в 1
Exclude(TIntegerSet(I), N); // сбросили N-ный бит в 0
if N in TIntegerSet(I) then... // проверили N-ный бит
end;
← →
Anatoly Podgoretsky © (2007-09-03 16:41) [4]> Помогите! (03.09.2007 15:20:00) [0]
Ко мне на сайт за статьей по работате с битами.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.047 c