operacje na bitach

0

Czy jest możliwość odwołać się do konkretnego bitu w delphi ?? Czyli jak mam np
var a:byte to można zrobić jakoś a.0 - dla najmłodszego bitu ?? Wiem że można sprawdzić dzieląc przez 2, patrząc na reszte i tak przejechac cały bajt, albo zrobić
if(a and 8)=8 then ... tzn że 3 bit jest ustawiony. Ale czy jest prostrzy sposób ?? --POzdrOWieNIa
[Del 6 per] [Del 5 Ent] [TP]

0

obawiam sie ze tylko kombinacje and/or i masek + ewentualnie shl/shr. Nie wiadomo mi o prostszym sposobie, a szukalem.--Pawel {Delphi6 }

Po pierwsze: naciśnij F1

0

Sivy, natchnales mnie. Mam pewien dzialajacy pomysl, chociaz tez troche zawily i na pewno niezbyt wydajny. Mianowicie (brutalne (przez Move)) zrzutowanie na set.

Oto przykladowy kod, ktory w memo wyswietla numery bitow ktore sa ustawione w wartosci x:word wpisanej do edita.

var
x: word;
bits :set of 0..15; *15 liczba bitow
i:integer;
begin
Memo1.Lines.Clear;
x:=StrToInt(Edit1.Text);
move(x,bits,2); *2 liczba bajtow
for i:=0 to 15 do //liczba bitow
if i in bits then Memo1.Lines.Add(IntToStr(i));
end;
--Pawel {Delphi6 }

Po pierwsze: naciśnij F1

0

Można i tak , ale chodziło mi własnie o coś takiego prostego. A to wszystko dla tago że w Bascomie (to taki basic dla mikrokontrolerów) można się tak odwoływac do bitów nazwa.numer_bitu i po sprawie. Dzięki za zainteresowanie--POzdrOWieNIa
[Del 6 per] [Del 5 Ent] [TP]

1 użytkowników online, w tym zalogowanych: 0, gości: 1