AND

Wat zijn ‘bitwise’ bewerkingen?

Dat zijn manipulaties op het niveau van bits (de delen van een byte)
om het patroon van nullen en enen te wijzigen.
Computers gebruiken binaire getallen. Een binair getal bestaat uit één of meerdere cijfers (0 of 1),
die twee verschillende staten, zoals on/off vertegenwoordigen.

Een voorbeeld van een binair getal ziet eruit als dit:

1 0 0 1 0

Het eerste cijfer aan de rechter kant van het getal staat in de kolom van de enen.
Het tweede cijfer van rechts is in de kolom van tweeën, dan komt etc. de kolom van vieren,
de kolom van achten, de kolom van zestien.
Elke kolom bevat een „bit“, of binair cijfer.

16 8 4 2 1

Het volgende voorbeeld binair getal, “10010” , kan omgezet worden in een decimaal getal,en wordt dan.

16 8 4 2 1
1 0 0 1 0
.

.

16 * 1 = 16
8 * 0 = 0
4 * 0 = 0
2 * 1 = 2
1 * 0 = 0
.

Het is ook mogelijk om bewerkingen op de bits uit te voeren door
gebruik te maken van de BOOLEAN operators en rekenregels.

AND (is zo een Boolean operator)
De AND operator zal een bit alleen aanzetten indien beide input bits
aan staan.

'Bitwise AND
'Deze bewerking zet een bit alleen als beide input bits aan staan.

print 7 and 11 ' geeft als antwoord 3

'16 8 4 2 1 '
'----------- '
' 0 0 1 1 1 ' 7 (binair)
' 0 1 0 1 1 ' 11 (binair)
' . . . ^ ^ ' Dit zijn de plekken waar beide cijfers een 1 zijn.
' 0 0 0 1 1 ' Dus, 2 + 1 = 3

OR

De OR operator zal een bit aanzetten indien één van beide input bits is gezet.

'Bitwise OR
'Deze bewerking zet een bit aan als
'een van beide bits aanstaat.

print 7 or 11 ' geeft als resultaat 15

'16 8 4 2 1 '
'----------- '
' 0 0 1 1 1 ' 7 (binair)

' 0 1 0 1 1 ' 11 (binair)

' . ^ ^ ^ ^ ' Dit zijn de plaatsen waar één van beide getallen het cijfer 1 hebben staan.
' 0 1 1 1 1 ´Dus, 8 + 4 + 2 + 1 = 15

XOR

De bitwise XOR operatie zet een bit alleen aan wanneer slechts één van de input’s een bit aan heeft staan.

'Bitwise XOR
'Deze bewerking zet een bit als
'exact één van de inputs de bit aan heeft staan.

print 7 xor 11 ' levert 12

'16 8 4 2 1 '
'----------- '
' 0 0 1 1 1 ' 7 (binair)

' 0 1 0 1 1 ' 11 (binair)

' . ^ ^ . . 'Dit zijn de plekken waar exact één getal het cijfer 1 heeft staan.
‘ 0 1 1 0 0 ´Dus , 8 + 4 = 12

See also: BOOLEAN