Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.044 c
1-1184918084
Makhanev Alexander
2007-07-20 11:54
2007.09.30
Restart сервиса...


2-1189080006
maslcs
2007-09-06 16:00
2007.09.30
внешний вид scroll а в компоненте webBrowser


15-1188590732
Rouse_
2007-09-01 00:05
2007.09.30
Криминалистический анализ файловых систем


2-1188889872
ambhtr
2007-09-04 11:11
2007.09.30
Delphi + Paradox


15-1188304203
@!!ex
2007-08-28 16:30
2007.09.30
Task Manager. Куда копать?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский