Binär subtraktionskalkylator: lån, tvåkomplement och lösta exempel
En binär subtraktionskalkylator tar fram skillnaden mellan två tal i bas 2, men för att få samma svar för hand måste du förstå två olika metoder: direkt lån, som fungerar precis som när du subtraherar decimaltal på papper, och subtraktion med tvåkomplement, som är så datorhårdvaran faktiskt gör det. Den här guiden går igenom båda metoderna med kompletta lösta exempel — inklusive ett lån som kaskadar genom flera nollor — plus en decimalkontroll av varje svar och de misstag som oftast får en binär subtraktion att spåra ur.
Innehåll
- 01Vad är binär subtraktion, och vad räknar en binär subtraktionskalkylator egentligen ut?
- 02Hur subtraherar du binära tal med direkt lån?
- 03Hur kaskadar ett lån genom flera nollor vid binär subtraktion?
- 04Hur fungerar subtraktion med tvåkomplement, och varför använder datorer det?
- 05Hur löser och kontrollerar du ett exempel på subtraktion med tvåkomplement?
- 06Vilka misstag bör du undvika vid binär subtraktion?
- 07Övningsuppgifter: Klarar du de här binära subtraktionerna?
- 08Var används binär subtraktion i verklig databehandling?
- 09Hur kan Solvify hjälpa dig kontrollera svaret från en binär subtraktionskalkylator?
Vad är binär subtraktion, och vad räknar en binär subtraktionskalkylator egentligen ut?
Binär subtraktion tar fram skillnaden mellan två tal skrivna i bas 2, med bara siffrorna 0 och 1. En binär subtraktionskalkylator använder samma låna-och-subtrahera-logik som du redan känner igen från decimal aritmetik, bara med en mindre uppsättning siffreregler: 0 − 0 = 0, 1 − 0 = 1, 1 − 1 = 0, och 0 − 1 = 1 med ett lån på 1 från nästa kolumn till vänster. Den sista regeln är där binär subtraktion med lån blir knepig, eftersom ett lån i bas 2 för in värdet 2 i den aktuella kolumnen (inte 10, som i decimalsystemet), och ett enda lån kan kaskada genom flera nollkolumner innan det hittar en etta att låna av. Varje löst exempel nedan går igenom den lånekedjan siffra för siffra.
Regler för binär subtraktion: 0−0=0, 1−0=1, 1−1=0, och 0−1=1 med ett lån på 1 från nästa kolumn.
Hur subtraherar du binära tal med direkt lån?
Här är ett komplett exempel med direkt lån: subtrahera 01101₂ från 10110₂ och arbeta från höger till vänster, en kolumn i taget, precis som när du subtraherar decimaltal på papper.
1. Steg 1 — Ställ upp kolumnerna
1 0 1 1 0 − 0 1 1 0 1 Rikta in båda talen efter sin högraste (minst signifikanta) siffra innan du subtraherar.
2. Steg 2 — Kolumn 1 (längst till höger): 0 − 1
0 − 1 kräver ett lån. Låna 1 från nästa kolumn, så att den här kolumnen blir 2 − 1 = 1. Skriv ner 1 och markera nästa kolumn som skyldig ett lån.
3. Steg 3 — Kolumn 2: 1 − 0, minus lånet
Kolumnen innehåller från början 1 − 0, men den är skyldig ett lån från steg 2, så den blir (1 − 1) − 0 = 0. Skriv ner 0.
4. Steg 4 — Kolumn 3: 1 − 1
1 − 1 = 0, och här finns inget lån att betala tillbaka. Skriv ner 0.
5. Steg 5 — Kolumn 4: 0 − 1
0 − 1 kräver ännu ett lån. Låna 1 från kolumnen längst till vänster, så att den här kolumnen blir 2 − 1 = 1. Skriv ner 1 och markera kolumnen längst till vänster som skyldig ett lån.
6. Steg 6 — Kolumn 5 (längst till vänster): 1 − 0, minus lånet
Kolumnen innehåller 1 − 0, men den är skyldig ett lån från steg 5, så den blir (1 − 1) − 0 = 0. Skriv ner 0.
7. Steg 7 — Läs av resultatet och kontrollera i decimalform
Läs siffrorna från steg 6 ner till steg 2: 01001₂. Kontrollera i decimalform: 10110₂ = 16+4+2 = 22, och 01101₂ = 8+4+1 = 13. 22 − 13 = 9, och 01001₂ = 8+1 = 9 — det binära och det decimala resultatet stämmer överens.
10110₂ − 01101₂ = 01001₂ (22 − 13 = 9 i decimalform) — två lån, bekräftade med en decimalkontroll.
Hur kaskadar ett lån genom flera nollor vid binär subtraktion?
Det svåraste fallet för en binär subtraktionskalkylator att göra begripligt är ett kaskadande lån, där en enda låneförfrågan måste passera flera 0-kolumner innan den når en etta. Här är precis det scenariot: subtrahera 00001₂ från 10000₂.
1. Steg 1 — Ställ upp kolumnerna
1 0 0 0 0 − 0 0 0 0 1 Bara den högraste kolumnen i det övre talet behöver ett lån, men det finns ingen etta i närheten att låna direkt av.
2. Steg 2 — Kolumn 1 (längst till höger): 0 − 1 startar kaskaden
0 − 1 kräver ett lån, men kolumn 2 är också 0, så låneförfrågan går vidare till kolumn 3. Kolumn 3 är också 0, så den skickas vidare till kolumn 4. Kolumn 4 är också 0, så förfrågan når till slut kolumn 5, som innehåller en etta.
3. Steg 3 — Lånet löses i kolumn 5 och flödar tillbaka nedåt
Ettan i kolumn 5 blir 0 efter att ha lånat ut sitt värde. Det lånet gör kolumn 4 till 2 i stället för 0, men kolumn 4 är också skyldig ett lån till kolumn 3, så den lånar ut 1 och behåller 1 för egen del (2 − 1 = 1), vilket lämnar kolumn 4 = 1. Samma mönster med att låna ut och behålla upprepas i kolumn 3 (blir 1) och kolumn 2 (blir 1), tills det ursprungliga lånet till slut landar i kolumn 1.
4. Steg 4 — Kolumn 1 slutförs med sitt lån
Kolumn 1 blir 2 − 1 = 1 med hjälp av lånet som kaskadade hela vägen från kolumn 5. Skriv ner 1.
5. Steg 5 — Läs av resultatet och kontrollera i decimalform
Läs kolumn 5 till 1: 01111₂. Kontrollera i decimalform: 10000₂ = 16, och 00001₂ = 1. 16 − 1 = 15, och 01111₂ = 8+4+2+1 = 15 — resultaten stämmer. Lägg märke till genvägen: att subtrahera 1 från en tvåpotens vänder alltid varje efterföljande nolla till en etta, vilket är precis vad det kaskadande lånet gav.
10000₂ − 00001₂ = 01111₂ (16 − 1 = 15 i decimalform) — ett enda lån kaskadar genom fyra nollkolumner innan det löser sig.
Hur fungerar subtraktion med tvåkomplement, och varför använder datorer det?
Direkt lån fungerar utmärkt för hand, men datorhårdvara har ingen separat subtraktionskrets — den gör om subtraktion till addition med hjälp av tvåkomplement, så att samma binära adderare klarar båda operationerna. För att subtrahera B från A beräknar hårdvaran A + (tvåkomplementet av B) och kastar sedan bort den överflödesbit som hamnar utanför det antal bitar som används.
1. Steg 1 — Ta fram tvåkomplementet av talet som ska subtraheras
Bilda ettkomplementet (vänd på varje bit) av subtrahenden och addera sedan 1. Det ger det negativa av talet i binär form.
2. Steg 2 — Addera i stället för att subtrahera
Addera minuenden till tvåkomplementet från steg 1 med vanliga regler för binär addition.
3. Steg 3 — Kasta bort överflödesbiten om talen ryms i den valda bitbredden
Om additionen ger en extra bit utöver den fasta bredden (t.ex. en 6:e bit när du arbetar med 5-bitarstal) ska den kastas bort — det överflödet motsvarar lånet som absorberas, och de återstående bitarna utgör rätt svar.
Subtraktion med tvåkomplement: vänd på varje bit i subtrahenden, addera 1, addera sedan till minuenden och kasta bort eventuell överflödesbit.
Hur löser och kontrollerar du ett exempel på subtraktion med tvåkomplement?
Återanvänd det första exemplet — 10110₂ − 01101₂ med 5-bitarstal — för att bekräfta att subtraktion med tvåkomplement landar på samma svar som direkt lån.
1. Steg 1 — Ta fram ettkomplementet av 01101
Vänd på varje bit i 01101₂: 0→1, 1→0, 1→0, 0→1, 1→0, vilket ger 10010₂.
2. Steg 2 — Addera 1 för att få tvåkomplementet
10010₂ + 1 = 10011₂. Det är tvåkomplementet (den negativa representationen) av 01101₂ i 5 bitar.
3. Steg 3 — Addera minuenden och tvåkomplementet
10110₂ + 10011₂: addition kolumn för kolumn med minnessiffror ger 101001₂, ett 6-bitarsresultat eftersom två 5-bitarstal adderades.
4. Steg 4 — Kasta bort överflödesbiten
Ta bort biten längst till vänster (den 6:e) från 101001₂, vilket lämnar 01001₂ som 5-bitarssvaret.
5. Steg 5 — Jämför och kontrollera i decimalform
01001₂ stämmer exakt med resultatet från det direkta lånet tidigare. I decimalform är 22 − 13 = 9, och 01001₂ = 8+1 = 9 — båda metoderna är överens, vilket bekräftar att tvåkomplementmetoden användes korrekt.
10110₂ − 01101₂ med tvåkomplement: 10110 + 10011 = 101001 → kasta bort överflödet → 01001₂ = 9, samma svar som med direkt lån.
Vilka misstag bör du undvika vid binär subtraktion?
Ett fåtal fel står för de flesta felaktiga resultaten i binär subtraktion, oavsett om du räknar för hand eller stämmer av mot en kalkylator.
1. Misstag 1 — Att behandla ett binärt lån som ett decimalt lån
Ett lån i bas 2 lägger till 2 i den aktuella kolumnen, inte 10. Att glömma det och använda decimal lånelogik ger fel siffra även när lånets riktning är rätt.
2. Misstag 2 — Att tappa bort ett kaskadande lån genom flera nollor
När ett lån måste passera flera 0-kolumner (som i 10000₂ − 00001₂) är det lätt att sluta hålla reda på vilka kolumner som fortfarande är skyldiga ett lån. Arbeta en kolumn i taget och markera varje kolumn som lånats av tydligt.
3. Misstag 3 — Att glömma addera 1 efter att ha vänt på bitarna i tvåkomplement
Tvåkomplement kräver att du vänder på varje bit (ettkomplementet) och sedan adderar 1. Hoppar du över +1-steget får du kvar ettkomplementet, vilket ger ett resultat som ligger ett steg fel jämfört med rätt svar.
4. Misstag 4 — Att behålla överflödesbiten vid tvåkomplement med fast bitbredd
När addition av två n-bitarstal ger en summa med (n+1) bitar måste den extra biten längst till vänster kastas bort för att ge rätt n-bitarssvar — behåller du den ändras resultatet helt.
5. Misstag 5 — Att hoppa över decimalkontrollen
Att omvandla båda talen och det slutliga svaret till decimalform tar bara några sekunder och fångar upp nästan varje subtraktionsmiss direkt, eftersom en felaktig binär siffra oftast ger en uppenbart felaktig decimalsumma.
Ett binärt lån lägger till 2 i den aktuella kolumnen, inte 10 — den absolut vanligaste källan till fel vid binär subtraktion.
Övningsuppgifter: Klarar du de här binära subtraktionerna?
Försök lösa varje uppgift för hand med antingen direkt lån eller subtraktion med tvåkomplement innan du kollar svaret.
1. Uppgift 1 — Direkt lån, ett enda lån
Subtrahera 0011₂ från 1000₂. Svar: 1000₂ − 0011₂ = 0101₂. Decimalkontroll: 8 − 3 = 5, och 0101₂ = 4+1 = 5.
2. Uppgift 2 — Subtraktion med tvåkomplement
Subtrahera 0110₂ från 1010₂ med tvåkomplement. Svar: ettkomplementet av 0110₂ är 1001₂, plus 1 ger 1010₂. Addera: 1010₂ + 1010₂ = 10100₂; kasta bort överflödesbiten så får du 0100₂. Decimalkontroll: 10 − 6 = 4, och 0100₂ = 4.
3. Uppgift 3 — Kaskadande lån genom tre nollor
Subtrahera 000001₂ från 100000₂. Svar: 100000₂ − 000001₂ = 011111₂, eftersom lånet kaskadar genom fyra nollkolumner. Decimalkontroll: 32 − 1 = 31, och 011111₂ = 16+8+4+2+1 = 31.
Var och en av de här uppgifterna handlar om samma två grepp: håll reda på varje lån kolumn för kolumn, eller växla till tvåkomplement och addera — och bekräfta sedan alltid med en decimalkontroll.
Var används binär subtraktion i verklig databehandling?
Binär subtraktion är inte bara en övning i datavetenskap — det är operationen som ligger under allt från CPU-aritmetik till buggar i lågnivåprogrammering. Processorer använder subtraktion med tvåkomplement inuti sina aritmetisk-logiska enheter (ALU:er), så att en enda adderarkrets klarar både addition och subtraktion utan separat hårdvara för vardera. Beräkningar av minnesadresser, loopräknare och pekararitmetik i lågnivåspråk som C går alla ner till binär subtraktion på hårdvarunivå. Att förstå mönstret med kaskadande lån förklarar också en klassisk buggkälla: underflöde i heltal utan tecken, där subtraktion förbi noll slår runt till ett mycket stort tal i stället för att bli negativt, eftersom hårdvaran inte har något lån kvar att kaskada in.
Varje subtraktion i en CPU — från att räkna ner en loopräknare till att beräkna en minnesadress — är i grunden addition med tvåkomplement.
Hur kan Solvify hjälpa dig kontrollera svaret från en binär subtraktionskalkylator?
När du väl förstår direkt lån och subtraktion med tvåkomplement från den här guiden kan Solvifys AI-drivna lösare ta emot ett foto av en binär räkneuppgift — från en läxa i datavetenskap, en inlämning i diskret matematik eller en tentaplugg i digitalteknik — och gå igenom samma steg kolumn för kolumn och med komplement, så att du kan jämföra dess uträkning med ditt eget handräknade resultat och hitta ett låne- eller bitfel innan det hamnar i en inlämning som ska betygsättas.
Det snabbaste sättet att bygga upp säkerhet i binär subtraktion är att lösa en uppgift för hand och bara använda en kalkylator för att kontrollera den — inte tvärtom.
Relaterade artiklar
Läxhjälp i datavetenskap: en komplett guide för studenter
Se hur binär aritmetik passar in i den bredare uppsättningen av centrala kursmoment i datavetenskap.
Läxhjälp i programmering: komplett guide för CS- och programmeringsstudenter
Binär subtraktion och omvandlingar mellan talbaser dyker upp hela tiden i tidiga kurser i programmering och datavetenskap.
Decimaltal till bråk: komplett omvandlingsguide
Att växla mellan olika talrepresentationer bygger på samma grundfärdighet som när du kontrollerar binära resultat i decimalform.
Relaterade matematiklösare
Smart Scan-lösare
Ta ett foto av vilken binär räkneuppgift som helst och få en direkt genomgång steg för steg.
Lösningar steg för steg
Få detaljerade förklaringar till varje lån och varje steg med tvåkomplement, inte bara det slutliga svaret.
AI-mattelärare
Ställ följdfrågor om lån, tvåkomplement eller vilket steg som helst i beräkningen tills polletten trillar ner.
