Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Вниз

Определение состояния бита   Найти похожие ветки 

 
Eagle Owl   (2003-10-11 17:41) [0]

Добрый вечер!
Вопрос такой: допустим, имеется целочисленная переменная (Byte, Integer и т.п.). Есть ли в Delphi или WinAPI функция для определения состояния отдельно взятого бита из значения этой переменной?


 
MBo   (2003-10-11 17:44) [1]

С помощью and и shl


 
chupacabra   (2003-10-11 18:29) [2]

Все очень просто:

function BitState(const A, Bit: DWORD): Boolean;
begin
BitState:=(A and Bit = Bit);
end;

Значение Bit - соответственно:
0 бит - 1
1 бит - 2
2 бит - 4
3 бит - 8
4 бит - догадайся сам...


 
WithOut Any ...   (2003-10-11 18:33) [3]

var
i1,i2,i3:integer;
s1,s2,s3:string;
us1:boolean;

function DecHex(integ:integer):string;
begin
i1:=integ;
i2:=i1;
Repeat
if (i1 div 2) = 0 then us1:=true;
i2:=i1; i2:=i2 mod 2;
i1:=i1 div 2;
s1:=IntToStr(i2)+s1;
until us1=true;
DecHex:=s1;
end;


 
Eagle Owl   (2003-10-11 18:45) [4]

Спасибо за ответы! Так а в Delphi или WinAPI функций подобных нет?
Я же потому так и спрашивал, чтобы не писать самому, если уже есть, а то это бы получилось как повторное изобретение велосипеда...


 
chupacabra   (2003-10-11 18:50) [5]


> WithOut Any ... ©

Ха! Ха! Такая ф-ция в текстовых строках энто КРУТО!!! Но тока ЩИТАТЬ ана будет ДЮЖЕ ДОВГО!!!
ТЫ бы ещё компонент такой написал... или dll-ку :)))


 
Nikolay M.   (2003-10-11 19:02) [6]


> WithOut Any ... © (11.10.03 18:33)

Да уж, намутил :))
А если примерно так (не проверял, но смысл очевиден):

function IsBitSet (N : integer; BitPos : byte) : boolean;
begin
Result := (BitPos < 8 * sizeof(N)) and (N and (1 shl BitPos) <> 0);
end;

соответственно BitPos - номер проверяемого бита от 0 до 255.


 
Anatoly Podgoretsky   (2003-10-11 19:06) [7]

http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Delphi/Podgoretsky/bits.html&file_i d=app-bits



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
1-74133
oens
2003-10-11 00:28
2003.10.23
Прокрутка в WebBrowser


1-74292
Chuha
2003-10-12 21:24
2003.10.23
listbox


14-74424
ИМХО
2003-10-05 10:02
2003.10.23
Кто помнит песню и исполнителя?


14-74443
Tyrande
2003-10-02 19:03
2003.10.23
Колонки или звук. карта? Кто дурак?


4-74520
pool
2003-08-18 17:14
2003.10.23
как узнать раскладку клавиатуры





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский