LitDev 1.2.16.0 DE Extension API

LD3DView LDArray LDBits LDBlueTooth LDCall
LDChart LDClient LDClipboard LDColours LDCommPort
LDController LDControls LDCursors LDDataBase LDDateTime
LDDebug LDDialogs LDDictionary LDEffect LDEmail
LDEncryption LDEvents LDFastArray LDFastShapes LDFigures
LDFile LDFocus LDftp LDGraph LDGraphicsWindow
LDHID LDImage LDInline LDIOWarrior LDList
LDLogic LDMath LDMathX LDMatrix LDMusic
LDNetwork LDPhysics LDProcess LDQueue LDRegex
LDResources LDScrollBars LDSearch LDServer LDSettings
LDShapes LDShell LDSort LDSound LDSpeech
LDStatistics LDStopwatch LDText LDTextWindow LDTimer
LDTranslate LDUnits LDUtilities LDVector LDWaveForm
LDWebCam LDWindows LDxml LDZip

LDBits
Bitweise Logik zum Speichern binärer Flags als Bits in einer einzelnen -/+ Ganzzahl.
Intern wird dazu eine 32 Bit -/+ Ganzzahl (Int32, -2147483648 bis 2147483647, -2^31 bis 2^31-1) verwendet.
Index 32 ist Vorzeichenbit (wenn gesetzt -> neg. Ganzzahl als Zweierkomplement).
Vergleichbar mit 32-elementigem Array aus 1 und 0 Werten, gespeichert als einzelne Zahl.
Die 32 Bits (1 bis 32) werden ab 1 indexiert. Arraywerte (0|1) sind die gesetzten 2er Potenzen von 0 bis 30:
bit1..2^0, bit2..2^1, bit3..2^2, usw.

example http://www.catonmat.net/blog/low-level-bit-hacks-you-absolutely-must-know/
http://graphics.stanford.edu/~seander/bithacks.html


AndBits GetBit GetBits
Not OrBits SetBit
UnsetBit XOrBits

AndBits(var1,var2)
Bitweise And (&, Und) Verkettung zweier Zahlen.
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1

var1 Die erste Zahl.
var2 Die zweite Zahl.
returns Die And Zahl (Bit gesetzt, wenn beide Eingabebits gesetzt).
example 1100 (12) And
1010 (10) =
1000 (8)

LDBits.AndBits(255, 15) '15
(FF & 0F = 0F, 11111111 & 00001111 = 00001111)
'n Geradzahl?
LDBits.AndBits(n,1) '0 gerade, 1 ungerade


GetBit(var,bit)
Ermittelt einen einzelnen Bitwert in einer angegebenen Zahl (s. GetBits für alle).
var Die zu überprüfende Zahl.
bit Der Index für das abzufragende Bit (1 bis 32, für 2er Potenzen 0-31).
returns Der Bitwert:
0 (ungesetzt)
1 (gesetzt)


GetBits(var)
Ermittelt alle Bitwerte einer angegebenen Zahl als Array (s. GetBit für Einzelbit).
Info: Der Arrayindex ist NICHT die 2er Potenz des Bits, diese ist Index-1.

var Die zu überprüfende Zahl.
returns Die einzelnen Bitwerte (0 oder 1) als 32-elementiger Array (ab 1).
example GetBits(6) ' "1=0;2=1;3=1;4=0;.."
Unteres Halbbyte/Nibble: 0+2^1+2^2+0 = 6


Not(var)
Bitweise Not (~, Nicht) Umkehrung für eine Zahl.
~0 = 1
~1 = 0

var Die umzukehrende Zahl.
returns Die Not Zahl (alle Bits umgekehrt).
example Not 1100 (12) =
..110011 (-13)

LDBits.Not(0) 'gibt -1 (alle Bits gesetzt)


OrBits(var1,var2)
Bitweise Or (|, Oder) Verkettung zweier Zahlen.
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1

var1 Die erste Zahl.
var2 Die zweite Zahl.
returns Die Or Zahl (Bit gesetzt, wenn bereits ein Eingabebit gesetzt).
example 1100 (12) Or
1010 (10) =
1110 (14)

LDBits.OrBits(255, 15) '255
(FF | 0F = FF, 11111111 | 00001111 = 11111111)


SetBit(var,bit)
Setzt ein Bit in einer Zahl (Setzen auf 1).
var Die Zahl in der das Bit gesetzt wird.
bit Der Index für das zu setzende Bit (1 bis 32).
returns Die geänderte Zahl mit neu gesetztem Bit.

UnsetBit(var,bit)
Entfernt ein Bit in einer Zahl (Setzen auf 0).
var Die Zahl von der das Bit entfernt wird.
bit Der Index für das zu entfernende Bit (1 bis 32).
returns Die geänderte Zahl nach entferntem Bit.

XOrBits(var1,var2)
Bitweise XOr (^, eXklusivOder) Verkettung zweier Zahlen.
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

var1 Die erste Zahl.
var2 Die zweite Zahl.
returns Die XOr Zahl (Bit gesetzt, wenn nur ein Eingabebit gesetzt).
example 1100 (12) XOr
1010 (10) =
0110 (6)

LDBits.XOrBits(255, 15) '240
(FF ^ 0F = F0, 11111111 ^ 00001111 = 11110000)