Hur man konvertera mellan basen 10, hexadecimalt och binär (2 / 7 steg)
Steg 2: Basera grunderna (Con't): binära
Som namnet antyder, en binär nummersystem består av två siffror: 1 och 0. Därför kallas detta som bas-2 och siffror ser ut som 100100102. I ett sådant system, framställningen av värden är fulländade genom ett "makten av två". Varje plats i ett binärt tal, ofta som lite, har ett särskilt värde som lätt kan fastställas. Binära tal skrivs oftast som en multipel av åtta, eller en byte. Ibland, bara fyra bitar av byte, antingen den övre eller nedre halvan används och dessa fyra bitar kallas tillsammans en nibble. Nibbles blivit viktigt vid konvertering mellan baser som vi kommer att se senare.
Utan digressing, kommer jag att använda big endian notation där heltal lagras i minnet börjar med den mest signifikanta biten (MSB) och slutar med den minst signifikanta biten (LSB). Värdet av eventuella ges lite platsen bestäms genom att ta två (antalet siffror i vår binärt system) till kraften i lite rum med ett nollbaserat index: 2 bitar. LSB av nibble är exempelvis 20 eller 1. Fjärde lite, det vill säga tredje plats (kom ihåg att vi börjar med noll) värdet är 23 eller 8. Låt oss bara titta på några exempel att göra det tydligare. Här är hur en nibble representeras i binär.
Nollbaserat index 3 2 1 0
Bit placera 4. 3. 2. 1.
Bitarsvärde 8 4 2 1
Exempelvärden:
Decimal 12 1 1 0 0
Decimal 5 0 1 0 1
Om bit platsens värde ska läggas till (eller räknas) det lite blir en 1, annars blir det en 0. Att veta detta, skrivs decimala värdet "1" "0001" eftersom den 1: a bit är inställd och detta värde är en. Decimalvärdet "10" skrivs i binärt som "1010" och om du lägger till lite platsens värde där det finns en 1 så ser du lägger till 10. På detta sätt kan en nibble representera siffrorna 0 till 15. Större antal kräver användning av den högsta nibble.
Bit placera 8 7 6 5 4 3. 2. 1.
Bitarsvärde 128 64 32 16 8 4 2 1
Exempel värde:
Decimal 88 0 1 0 1 1 0 0 0
Decimal 253 1 1 1 1 1 1 0 1
Lägga till bitarsvärden för varje bit's plats som har en 1 att tillfredsställa dig själv att de decimala värdena representeras exakt av det binära värdet till höger.
Jag kommer att omfatta binär addition, subtraktion, multiplikation, division, flytande poäng och negativa tal via 2's komplement och 1 komplement i en senare instructable jag har redan börjat arbeta på kallas hur man beräkna som en mikrokontroller, men här är en förhandsvisning som en lockelse (Ja, som binär matematik kan vara en lockelse, rätt?) att visa och Betygsätt min andra instructables. :)
Förhandsgranskning av hur man beräknar som en mikrokontroller .
Binär aritmetik: Lägga till och subtrahera
Binär aritmetik är mycket enkel och rättfram. Du bör bekanta dig med binär representation av nummer noll genom tre, om du inte redan har dessa förbundit sig till hjärtat. De är 00, 01, 10 och 11. Det primära att komma ihåg är att bära över dem och det är det svåraste du måste att göra, så andas ut.
Jag kommer att lägga till 15810 och 5110 i binär, som om du redan har lagt till dem bör avkastningen 20910. Följa med och dubbelkolla mina beräkningar.
1001 1110
+ 0011 0011
-------------
Nu, lägga ner från LSB (längst till höger) flyttar till vänster. Först är 0 + 1 som är 1. Nästa är 1 + 1 som är 2, men i binär är 10. Detta är två siffror så vi har att bära att en över till nästa spalt.
1001 1110
+ 0011 0011
-------------
01
-------------
1
I kolumnen är det 1 + 0 + 1 vilket återigen två, eller 10. Bära att en. Fortsätta.
1001 1110
+ 0011 0011
-------------
0001
-------------
1111
Nu har vi 1 + 1 + 1 som är tre, eller, ja, du fick det: 11. Så istället för att sätta en nolla och bära en 1, sätta en 1 och bära en sådan. Fortsätta till slutet.
1001 1110
+ 0011 0011
-------------
1101 0001
-------------
111111
110100012 är 20910, så vi gjorde våra beräkningar korrekt.
Binär aritmetik: Multiplikation och Division
I bas-2-systemet sker också lätt division och multiplikation med två av höger och vänster flytta, respektive. Skiftande är precis som det låter: när du lämnade SKIFT av n, du tar alla 1 och 0's och flytta dem n platser till vänster fyller i de skiftade platserna med 0. När du rätt logiskt SKIFT av n platser, du flytta alla binära värden n platser till höger, fylla den flyttade slots med 0 är (det finns också ett aritmetiskt högerskift, men jag inte täcka det här). I exemplet nedan skifta jag nummer 4 till vänster av en bit. Biten #1 är den 2: a från höger i vårt nollbaserat indexsystem, och vi kan också skriva det 21 eller 2. Detta bör leda till en multiplikation 4 * 21 eller 8.
Vänster shift: 4 << 1
Lite värde: 8 4 2 1
Binary: 4 = 0 1 0 0
Skiftat till vänster en lite:
1 0 0 0 = 8 denary
Du kan se hur skiftande till vänster ändrar talet från fyra till åtta, effektivt multipliceras med två. Vi kan också flytta vänster av två bitar eller valfritt antal bitar från 1 till n - 1, där n är antalet bitar i vår binärt tal. Därför skifta en binär numret till höger delar effektivt numret med två. Tänk på det om du inte är klar så ta en titt nedan. Här flytta vi 32 två bitar till höger, effektivt dela 32 av 22 , vilket ger 8.
Höger Skift: 32 >> 2
Lite värde: 128 64 32 16 8 4 2 1
Binära 32 = 0 0 1 0 0 0 0 0
Skiftat till höger två bitar:
0 0 0 0 1 0 0 0
Det är långt ifrån alla grundläggande binära åtgärder, men det är en tillräcklig täckning för våra lil' ' ol instructable här.