Stap 3: Van decimaal naar binair: afbreken van nummers in de 1s en 0s
Zeggen dat we willen vinden de binaire vertegenwoordiging van het decimale getal 23. Eerst zien we dat 23 een combinatie van de nummer 3 instellen in de 10 is ^ 0 positie, en het getal 2 instellen in de 10 ^ 1 positie, wat dat betekent wanneer we elk getal volgens haar standpunt wegen (2 * 10 ^ 1 + 3 * 10 ^ 0) krijgen we het nummer 23. Als we proberen te doen hetzelfde in binaire wij zou komen met het nummer 10111 omdat 1 * 2 ^ 4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 = 23. Natuurlijk, kan het vinden van de binaire vertegenwoordiging van een relatief klein aantal zoals 23 worden gedaan zonder veel berekening. Maar voor grotere aantallen wordt het noodzakelijk om te gebruiken het volgende algoritme:
-Verhoging van 2 ^ 0, vinden de eerste macht van 2 die groter is dan het decimale getal we hebben
-Beginnen met de kracht van 2 onmiddellijk onder de vonden we in de eerste stap, verdelen het decimale aantal door de machten van 2 in aflopende volgorde, helemaal tot aan 2 ^ 0
-Na elke stap van de divisie, zouden we een 1 of een 0 als het quotiënt, en sommige rest waarde. De rest moet uiteindelijk ga naar 0 (dat kan gebeuren vóór de laatste stap van de divisie)
-De 1s en 0s verkregen als de quotiënten geven de binaire vertegenwoordiging van het decimale getal
Nou, als we niet hebben doorlopen het proces vóór, het klinkt allemaal als wartaal. Niets zoals het doorlopen van een voorbeeld aan dingen ophelderen. Zeggen dat we willen vinden de binaire vertegenwoordiging van het decimale getal 117. Laten we proberen te volgen van de bovenstaande algoritme (ik gebruik sommige persoonlijke tweaks):
-We beginnen met 2 ^ 0 die kleiner dan 117, is dus we blijven toenemen. 2 ^ 1 is ook kleiner, blijf... Oke, dus we naar 2 ^ 5 die is nog kleiner dan 117, maar zo snel als we hit 2 ^ 6 Wij merken dat het de "eerste macht van 2 die groter is dan het decimale getal we hebben"
-Zodat we weten dat we moeten beginnen met de kracht van 2 direct onder 2 ^ 6, oftewel 2 ^ 5. [Persoonlijke tweaks] omdat we weten dat we gonna worden delen door alle machten van 2 onder 2 ^ 5, ik schrijf ze allemaal vooraf dus ik vergeet niet. Ik herinner me ook dat de rest van de deling eindigt op 0, moet (hoewel het zou kunnen uitmonden in 0 langs de weg.
Scheidingslijn | Rest | Quotiënt
2 ^ 6 (64) | |
2 ^ 5 (32) | |
2 ^ 4 (16) | |
2^3 (8) | |
2^2 (4) | |
2^1 (2) | |
2^0 (1) | |
0
-Met alles ingesteld, we beginnen de divisie stappen:
Scheidingslijn | Rest | Quotiënt
2 ^ 6 (64) | 117 | 1
2 ^ 5 (32) | 53 |
2 ^ 4 (16) | |
2^3 (8) | |
2^2 (4) | |
2^1 (2) | |
2^0 (1) | |
0
117 gedeeld door 64 geeft een quotiënt van 1 en een rest van 53. Dus weten we dat in de 7e positie van onze binaire vertegenwoordiging van 117, zal er een 1 (bijvoorbeeld 1XXXXXX). Als u op de andere posities doorgaan we gewoon met de divisie:
Scheidingslijn | Rest | Quotiënt
2 ^ 6 (64) | 117 | 1
2 ^ 5 (32) | 53 | 1
2 ^ 4 (16) | 21 | 1
2^3 (8) | 5 | 0
2^2 (4) | 5 | 1
2^1 (2) | 1 | 0
2^0 (1) | 1 | 1
0
- En zo, we krijgen dat de binaire vertegenwoordiging van het decimale getal 117 1110101 is. We moeten niet vergeten, dat zelfs als de rest gaat naar 0 voordat de laatste stap van de divisie, we moeten blijven het proces helemaal tot 2 ^ 0. Dus, in het geval van het decimale getal 48:
Scheidingslijn | Rest | Quotiënt
2 ^ 5 (32) | 48 | 1
2 ^ 4 (16) | 16 | 1
2^3 (8) | 0 | 0
2^2 (4) | 0 | 0
2^1 (2) | 0 | 0
2^0 (1) | 0 | 0
0
De binaire vertegenwoordiging is 110000 in tegenstelling tot 110, die we krijgen zouden als we duiken gestopt toen de rest 0 eerst wordt bereikt. Weten hoe te breken een aantal in haar constituerende 1s en 0s is zeer noodzakelijk om te kunnen verzenden van gegevens naar de WS281X.