Bitweiser Operator
Das 'Bitweise Und'
& vergleicht die Bits zweier Zahlen so, dass als Ergebnis eine 1 für die jeweilige Bitstelle geliefert wird, wenn das Bit in beiden Zahlen 1 (gesetzt) ist, anderenfalls eine 0. Weil die Zahl
0 keine Bitstelle mit dem Wert 1 enthält, ist das Ergebnis von
Variable & 0 immer 0. AHK prüft aber vor der Verknüpfung, ob
Variable überhaupt einen gültigen numerischen Wert enthält. Wenn nicht, wird als Ergebnis die leere Zeichenfolge
"" geliefert.
Der Ausdruck
((Variable & 0) = 0) ist deshalb nur dann wahr, wenn
Variable einen gültigen numerischen Wert enthält.
Alternativ kann man auch mathmatische Operationen wie
((Variable + 0) <> "") verwenden. Auf CPU-Ebene sind die bitweisen Operationen aber schneller. In Zeiten, in denen man schwachbrüstigen Rechnern anstrengende Aufgaben aufhalsen musste, konnte das durchaus von Bedeutung sein.
:arrow: [url=https://de.wikipedia.org/wiki/Bitweiser_Operator][b]Bitweiser Operator[/b][/url]
Das 'Bitweise Und' [c]&[/c] vergleicht die Bits zweier Zahlen so, dass als Ergebnis eine 1 für die jeweilige Bitstelle geliefert wird, wenn das Bit in beiden Zahlen 1 (gesetzt) ist, anderenfalls eine 0. Weil die Zahl [c]0[/c] [b]keine[/b] Bitstelle mit dem Wert 1 enthält, ist das Ergebnis von [c]Variable & 0[/c] [b]immer[/b] 0. AHK prüft aber vor der Verknüpfung, ob [c]Variable[/c] überhaupt einen gültigen numerischen Wert enthält. Wenn nicht, wird als Ergebnis die leere Zeichenfolge [c]""[/c] geliefert.
Der Ausdruck [c]((Variable & 0) = 0)[/c] ist deshalb nur dann wahr, wenn [c]Variable[/c] einen gültigen numerischen Wert enthält.
Alternativ kann man auch mathmatische Operationen wie [c]((Variable + 0) <> "")[/c] verwenden. Auf CPU-Ebene sind die bitweisen Operationen aber schneller. In Zeiten, in denen man schwachbrüstigen Rechnern anstrengende Aufgaben aufhalsen musste, konnte das durchaus von Bedeutung sein.