Op woensdag 13 november 2024 22:58:11 schreef benleentje:
Stel je hebt het binaire getal
1111 0000
1111 0000 >> 1 = 0111 1000
1111 0000 >> 2 = 0011 1100enz
Alle bitjes worden naar rechts verschoven en hoeveel keer dat gebeurt dat is de waarde van teller.
Zo kan je heel makkelijk een 32 bit getal maken uit 4 bytes
32 bit getal is x
X = X + byte1
X << 8 ?? alles bitjes 8x naar linksX = X + byte2
X << 8Uit ((x >> teller)&1) moet een 1 of 0 uitkomen om zo een waar of niet waar over te houden.
Dit is een goede uitleg, BL.
Het klopt ook met je punt dat het een gemakkelijke manier is om van 4 bytes een 32 bits getal te maken. Dat is namelijk ook wat dat programma deed.
Ik kon dat redelijk doorgronden
Maar even resumerend...
De "teller" stelt hoeveel posities "x" de virtuele bytes opzij wordt geschoven om te zien of de LSB 1 of 0 is.
Ik besef me net dat daarvoor het beoogde getal helemaal nog niet als Byte uitgevoerd hoeft te zijn.
Het betreft een getal wat in zijn virtuele Byte vorm opzij wordt geduwd, waarbij na elke verschuiving de waarde wordt gematcht met "00000001", wat natuurlijk hetzelfde is als "1", zijnde het LSB.
De rest was me al duidelijk. Is het een 1, dan print hij "1", is het een 0, dan print hij "0".
Zit ik zo goed te denken?