Leer bitwise AND gebruiken om te bepalen of een getal even is.
Specificaties
Maak een variabele number aan.
Gebruik een bitwise AND (&) om te controleren of number even is (laatste bit = 0).
Verwachte output
Als number = 6, komt in de console:
Het getal is even.
Als number = 5, komt in de console:
Het getal is oneven.
Nu jij
using System; int number = ________; if ((number & 1) == ________){ Console.WriteLine("Het getal is even."); } else{ Console.WriteLine("Het getal is oneven."); }
Mogelijke uitwerking
using System; int number = 6; if ((number & 1) == 0) { Console.WriteLine("Het getal is even."); } else{ Console.WriteLine("Het getal is oneven."); }
Opdracht 2
Controleer of het 3e bit van een getal aan staat.
Specificaties
Gebruik bitwise AND (&) om te controleren of het derde bit (van rechts, waarde 4) van een getal x is ingesteld.
Toon een aangepaste boodschap in de console.
Verwachte output
Als x = 5, komt in de console:
Het derde bit staat AAN.
Als x = 2, komt in de console:
Het derde bit staat UIT.
Nu jij
using System; int x = _________; if ((x & 4) == _________){ Console.WriteLine("Het derde bit staat AAN."); } else{ Console.WriteLine("Het derde bit staat UIT."); }
Mogelijke uitwerking
using System; int x = 5; if ((x & 4) == 4) { Console.WriteLine("Het derde bit staat AAN."); } else{ Console.WriteLine("Het derde bit staat UIT."); }
Opdracht 3
Gebruik bitwise OR om rechten samen te voegen.
Specificaties
Maak twee variabelen: leesRecht = 1, schrijfRecht = 2.
Voeg de rechten samen in rechten met de | operator.
Verwachte output
Als rechten = leesRecht | schrijfRecht, komt in de console:
Gebruiker heeft lees- en schrijfrechten.
Nu jij
using System;int leesRecht = 1;int schrijfRecht = 2; int rechten = _________; if ((rechten & leesRecht) != _________ && (rechten & schrijfRecht) != _________) { Console.WriteLine("Gebruiker heeft lees- en schrijfrechten."); }else{ Console.WriteLine("Gebruiker heeft geen lees- en schrijfrechten.");}
Mogelijke uitwerking
using System; int leesRecht = 1; int schrijfRecht = 2; int rechten = leesRecht | schrijfRecht; if ((rechten & leesRecht) != 0 && (rechten & schrijfRecht) != 0){ Console.WriteLine("Gebruiker heeft lees- en schrijfrechten."); }else{ Console.WriteLine("Gebruiker heeft geen lees- en schrijfrechten");}
Opdracht 4
Gebruik bitwise XOR om verschil tussen bits te tonen.
Specificaties
Vraag twee getallen a en b.
Gebruik de ^ operator om verschilbits te berekenen.
Print het resultaat.
Verwachte output
Als a = 6, b = 3, komt in de console:
Verschilbits: 5
Nu jij
using System; int a = _________; int b = _________; int verschil = a ^ b; Console.WriteLine("Verschilbits: " + verschil);
Mogelijke uitwerking
using System;int a = 6;int b = 3;int verschil = a ^ b;Console.WriteLine("Verschilbits: " + verschil);
Opdracht 5
Gebruik bitwise shift om te vermenigvuldigen en delen.
Specificaties
Maak een variabele n aan.
Gebruik n << 1 om met 2 te vermenigvuldigen.
Gebruik n >> 1 om door 2 te delen.
Verwachte output
Als n = 4, komt in de console:
4 x 2 = 8
4 / 2 = 2
Nu jij
using System;int n = _________;Console.WriteLine(n + " x 2 = " + (n << 1));Console.WriteLine(n + " / 2 = " + (n >> 1));
Mogelijke uitwerking
using System;int n = 4;Console.WriteLine(n + " x 2 = " + (n << 1));Console.WriteLine(n + " / 2 = " + (n >> 1));
Opdracht 6 Hoofdletters en kleine letters kunnen switchen
Gebruik bitwise operaties om de hoofdletters en kleine letters van een karakter aan te passen.
Geef een bitwise expressie die een integer x (16 bits) omzet in een getal y (16 bits). Hierbij worden de bits nummers 13 t/m 15 (vanaf links) “geïnverteerd”.
Nu jij
Hieronder staan twee voorbeelden hoe de integer geïnverteerd moet worden.
x = 0000_1100_1100_1111 → y = 0000_1100_1100_0001
x = 0101_0101_1010_0101 → y = 0101_0101_1010_1011
Uitwerking
y = x ^ 0b0000_0000_0000_1110
of
y = x ^ 0xE
Opdracht 8
Geef een bitwise expressie die een integer x (16 bits) omzet in een getal y (16 bits). Hierbij wordt het één na laatste bit (vanaf links) “gereset”.
Nu jij
Hieronder staan drie voorbeelden hoe de integer gereset moet worden.