Stap 2: Baseren Basics (Con't): binaire
Zoals de naam al impliceert, een binaire nummering systeem bestaat uit twee getallen: 1 en 0. Dienovereenkomstig, is dit bedoeld als grondtal 2 en getallen eruit 100100102. In een dergelijk systeem, zijn de representatie van waarden bereikt door een "kracht van twee" systeem. Elke plaats in een binair getal, vaak aangeduid als een beetje, heeft een bepaalde waarde die gemakkelijk kan worden bepaald. Binaire getallen worden meestal geschreven als een veelvoud van acht, of een byte. Soms, alleen vier bits van de byte, ofwel de bovenste of onderste helft worden gebruikt en deze vier bits worden gezamenlijk aangeduid als een beet. Nibbles belangrijker bij de conversie tussen basen zoals we later zullen zien.
Zonder afdwaal, zal mij zitten using big endian notatie waarin gehele getallen worden opgeslagen in het geheugen met de meest significante bit (MSB) beginnend en eindigend bij het minste significante beetje (LSB). De locatie van de waarde van een gegeven bit wordt bepaald door het nemen van twee (het aantal cijfers in ons systeem van binary) aan de macht van de bits van plaats met behulp van een op nul gebaseerde index: 2 bits. Bijvoorbeeld, de LSB van de beet is 20 of 1. De vierde beetje, dat wil zeggen, de derde plaats (onthoud we beginnen bij nul) waarde is 23 of 8. Laten we gewoon kijken naar enkele voorbeelden het om duidelijker te maken. Hier is hoe een beet worden weergegeven in binair.
Zero-based index 3 2 1 0 Bit place 4th 3rd 2nd 1st Bit value 8 4 2 1 Example values: Decimal 12 1 1 0 0 Decimal 5 0 1 0 1
Als de bitplaats waarde worden toegevoegd (of geteld) zal dat beetje een 1, anders zal zij een 0. Dit wetende, is de decimale waarde "1" geschreven "0001" omdat de 1ste bit is ingesteld en die waarde behoort. De decimale waarde "10" is geschreven in binaire als "1010" en als u de bitplaats waarde waar er is een 1 dan ziet u het wordt toegevoegd aan 10. Op deze manier kan een beet de getallen 0 t/m 15 vertegenwoordigen. Grotere aantallen vereisen het gebruik van de eersterangs knabbelen.
Bit place 8th 7th 6th 5th 4th 3rd 2nd 1st Bit value 128 64 32 16 8 4 2 1 Example value: Decimal 88 0 1 0 1 1 0 0 0 Decimal 253 1 1 1 1 1 1 0 1
Voeg de bits waarden voor elke bit die de plaats heeft een 1 aan jezelf duidelijk te maken dat de decimale waarden nauwkeurig worden vertegenwoordigd door de binaire waarde rechts ervan.
Ik zal behandelen, binaire toevoeging, aftrekking, vermenigvuldiging, divisie, drijvende punten en negatieve getallen via 2's aanvulling en 1's aanvulling in een later instructable ik heb al begon te werken op geroepen Hoe te berekenen als een Microcontroller, maar hier is een preview als een verleiding (Ja, als binaire wiskunde kan een verlokking, juiste?) om te bekijken en stem op mijn andere instructables. :)
Voorbeeld van Hoe te berekenen als een Microcontroller .
Binaire rekenkundige: Optellen en aftrekken
Binaire rekenkundige is zeer eenvoudig en ongecompliceerd. U moet vertrouwd raken met de binaire vertegenwoordiging van nummers nul tot en met 3, als u niet al deze gepleegd ter harte. Ze zijn 00, 01, 10 en 11. Het belangrijkste om te onthouden is om over degenen te dragen en dat is het moeilijkste wat dat je moet doen, zo ademen gemakkelijk.
I 'm gonna toevoegen van 15810 en 5110 in binary, die als je ze al hebt toegevoegd moet opbrengst 20910. Volg langs en controleer mijn berekeningen.
1001 1110 + 0011 0011 -------------
Voeg nu toe naar beneden van de LSB (uiterst rechts) verplaatsen naar de linkerzijde. De eerste is 0 + 1, dat 1 is. Het volgende is 1 + 1, oftewel 2, maar in binaire is 10. Dit zijn twee cijfers, dus we hebben dat men om over te dragen naar de volgende kolom.
1001 1110 + 0011 0011 ------------- 01 ------------- 1
In die kolom is 1 + 0 + 1, die weer twee, of 10 is. Voeren die ene. Blijven.
1001 1110 + 0011 0011 ------------- 0001 ------------- 1111
Nu we hebben 1 + 1 + 1, die drie is of, ja, je het hebt: 11. Dus in plaats van een nul zetten en uitvoering van een 1, zet een 1 en een dragen. Doorgaan tot het einde.
1001 1110 + 0011 0011 ------------- 1101 0001 ------------- 111111
De 110100012 is 20910, dus we onze berekeningen correct deden.
Binaire rekenkundige: Vermenigvuldiging en deling
In het grondtal 2 systeem, deling en vermenigvuldiging door een macht van twee is ook eenvoudig te realiseren door links en rechts verschuiven, respectievelijk. Verschuiven is precies als het klinkt: toen u verschuiving door n verliet u alle 1's en 0's nemen en verplaatsen n plaatsen naar links de verschoven plaatsen met een 0 invullen. Wanneer u rechts logisch shift door n plaatsen, verplaatst u alle de binaire waarden n plaatsen naar rechts, de verplaatste "slots" vullen met 0's (er is ook een rekenkundige juiste verschuiving, maar ik hier niet behandelen). In het voorbeeld hieronder verschuiven ik de nummer 4 naar links door de beet. De #1-bit is de 2e van rechts in ons systeem van de op nul gebaseerde index, en kunnen we ook schrijven het 21 of 2. Dit moet leiden tot een verveelvoudiging van 4 * 21 of 8.
Left shift: 4 << 1 Bit value: 8 4 2 1 Binary: 4 = 0 1 0 0 Shifted to the left one bit: 1 0 0 0 = 8 denary
U kunt zien hoe verschuiven naar links verandert het aantal van vier tot acht, effectief te vermenigvuldigen met de waarde twee. We kunnen ook verschuiven links door twee bits of een willekeurig aantal bits van 1 tot n - 1, waarbij n staat voor het aantal bits in onze binair getal. Dienovereenkomstig, het verschuiven van een binair getal rechts effectief verdeelt het nummer door een macht van twee. Denk over dat als je niet duidelijk bent neem dan een kijkje hieronder. Hier verschuiven we 32 twee bits naar rechts, effectief verdelen 32 door 22 , 8 oplevert.
Right shift: 32 >> 2 Bit value: 128 64 32 16 8 4 2 1 Binary 32 = 0 0 1 0 0 0 0 0 Shifted to the right two bits: 0 0 0 0 1 0 0 0
Dat is verre van alle fundamentele binaire bewerkingen, maar het is een voldoende dekking voor onze lil' ' ol instructable hier.