Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.30;
Скачать: CL | DM;

Вниз

Работа с битами.   Найти похожие ветки 

 
Помогите!   (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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
2-1188729507
MAXHo
2007-09-02 14:38
2007.09.30
Сохранение страниц в TWebBrowser


2-1188830690
BFG9k
2007-09-03 18:44
2007.09.30
запрет перетаскивания окна


9-1161125968
rts111
2006-10-18 02:59
2007.09.30
Шейдеры где компилируются, в видеокарте или в dll?


1-1184576114
Unknown user
2007-07-16 12:55
2007.09.30
Подскажите алгоритмы быстрого геометрического поиска?


15-1188563188
Jeer
2007-08-31 16:26
2007.09.30
К вопросу о парковке