| |
|
|
Michael W. | In XProfan kann man auch mit Bitfeldern arbeiten.
Die einfachsten Operationen sind hier: KompilierenMarkierenSeparierenDeclare DasBitfeld&[250000]' 8.000.000 Bits
Proc Bitfield.Get
Parameters BF&[], ix&
Return if(TestBit( BF&[ix& \ 32], ix& mod 32) <> 0, 1, 0)
EndProc
Proc Bitfield.GetInv'liefert das invertierte Bit, ohne etwas zu ändern
Parameters BF&[], ix&
Return if(TestBit( BF&[ix& \ 32], ix& mod 32) <> 0, 0, 1)
EndProc
Proc Bitfield.Set'kann Bit setzen (=1) oder löschen (=0)
Parameters BF&[], ix&, BitWert%
BF&[ ix& \ 32] = SetBit( BF&[ix& \ 32], ix& mod 32, BitWert% )
Return Bitfield.Get( BF&[], ix& )
EndProc
Proc Bitfield.Toggle
Parameters BF&[], ix&
'--- 'folgender 2-Zeiler ist kürzer, aber Index wird 3x neu errechnet
'na gut, ist jetzt ein 1-Zeiler mit 2 Berechnungen
'--- Return Bitfield.Set(BF&[],ix&,Bitfield.GetInv(BF&[],ix&))
Declare AI&, BI%, NewBit%
AI& = ix& \ 32' Array-Index
BI% = ix& mod 32' Bit-Index
NewBit% = if(TestBit(BF&[AI&],BI%)<>0,0,1)
BF&[AI&] = SetBit(BF&[AI&],BI&,NewBit%)
Return NewBit%
EndProc
Es können aber auch mehrere Bits mit AND/OR/XOR bearbeitet werden oder ganze Bitstreams (braucht man z.B. bei Verschlüsselungen oder Komprimierern). |
|
|
| System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 20.01.2015 ▲ |
|
|
|
|
| Also statt:
if(TestBit(BF&[AI&],BI%)<>0,0,1)
kannst Du doch einfach:
TestBit(BF&[AI&],BI%)=0
schreiben usw. oder statt:
if(TestBit( BF&[ix& \ 32], ix& mod 32) <> 0, 1, 0)
einfach:
TestBit( BF&[ix& \ 32], ix& mod 32)<>0 |
|
|
| |
|
|
|
Michael W. | Ja, wenn's doch in der Hilfe eindeutiger gestanden hätte.
Bei TestBit(x,1,1) hätte ich 2 erwartet bei TestBit(x,2,1) hätte ich 4 erwartet usw denn das sind ja die wirklichen Bitwerte.
Jetzt weiß ich es durch ausprobieren... |
|
|
| XProfan X3System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 20.01.2015 ▲ |
|
|
|
|
| Nein, bei den vorgeschlagenen Änderungen spielt es keine Rolle was in der Hilfe steht. |
|
|
| |
|
|
|
Michael W. | Ja, hast Recht. Den Test gleich als Ergebnislieferant nutzen. Dies ist aber nicht so eindeutig für alle erkennbar. Und es sollte ja als kleine Anfänger-Starthilfe dienen... |
|
|
| XProfan X3System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 21.01.2015 ▲ |
|
|
|