Deler binære tall

Forfatter: Roger Morrison
Opprettelsesdato: 6 September 2021
Oppdater Dato: 1 Juli 2024
Anonim
Edd China’s Garage Revival Program Pilot: The Golf GT(I)
Video: Edd China’s Garage Revival Program Pilot: The Golf GT(I)

Innhold

Å dele binære tall kan løses ved å bruke lang divisjon, en praktisk metode for å lære deg selv prosedyren eller skrive et enkelt dataprogram. Alternativt tilbyr komplementmetoden for gjentatt subtraksjon en tilnærming som du kanskje ikke er kjent med, men ikke egentlig brukt i programmering. Maskinspråk bruker vanligvis en estimeringsalgoritme for større effektivitet, men disse er ikke beskrevet her.

Å trå

Metode 1 av 2: Bruk av lang divisjon

  1. Gå gjennom desimal lang divisjon igjen. Hvis det har gått en stund siden du har gjort lang divisjon med vanlige desimaltall (base 10), kan du se gjennom basen på problemet igjen for problemet 172 ÷ 4. Ellers hopper du over dette og går til neste trinn for å lære denne prosedyren for binær tall.
    • Den utbytte er delt av divisor, og svaret er det kvotient.
    • Sammenlign divisoren med det første sifferet i utbyttet. Hvis skillelinjen er det største tallet, fortsett å legge til sifre i utbyttet til skillelinjen er det minste tallet. (For eksempel, når vi beregner 172 ÷ 4, sammenligner vi 4 og 1, finner ut at 4> 1, og sammenligner deretter 4 med 17.)
    • Skriv det første sifferet i kvotienten over det siste sifferet i utbyttet som ble brukt til sammenligningen. Etter å ha sammenlignet 4 og 17, merker vi at 4 går inn i 17 fire ganger, så vi skriver 4 som det første sifferet i kvotienten vår, over 7.
    • Multipliser og trekk for å finne resten. Multipliser kvotienten med deleren, i dette tilfellet 4 x 4 = 16. Skriv 16 under 17, gjør deretter 17 - 16 for resten, 1.
    • Gjenta. Igjen sammenligner vi divisor 4 med neste siffer, 1, merker at 4> 1, og "henter" neste siffer i utbyttet, for å sammenligne 4 med 12 i stedet. 4 går inn i 12 tre ganger uten rest, så vi kan skrive 3 som neste siffer i kvotienten. Svaret er 43.
  2. Lag et binært langdivisjonsoppsett. Anta at vi bruker 10101 ÷ 11 som et eksempel. Skriv dette som en lang divisjon, med 10101 som utbytte og 11 som deleren. La det være plass over for å skrive kvotienten, og skriv beregningene nedenfor.
  3. Sammenlign divisoren med det første sifferet i utbyttet. Dette fungerer på samme måte som desimal lang divisjon, men er faktisk mye lettere i binær form. Eller du kan ikke dele tallet med deleren (0), eller deleren passer inn en gang (1):
    • 11> 1, så 11 "passer ikke" 1. Skriv en 0 som første siffer i kvotienten (over det første sifferet i utbyttet).
  4. Ta nå neste siffer og gjenta til du får 1. Her er de neste trinnene fra eksemplet vårt:
    • Ta ned neste siffer i utbyttet. 11> 10. Skriv en 0 i kvotienten.
    • Ta ned neste siffer. 11 101. Skriv en 1 i kvotienten.
  5. Bestem resten. som i en desimal lang divisjon multipliserer vi sifferet vi nettopp fant (1) med deleren (11), og skriver resultatet under utbyttet vårt på en linje med sifferet vi nettopp har beregnet. I binær form kan vi gjøre dette raskere, fordi 1 x divisoren alltid er lik divisoren:
    • Skriv deleren under utbyttet. Her skriver vi dette som 11 under de tre første sifrene (101) i utbyttet.
    • Beregn 101 - 11 for resten, 10. Gjennomgå hvordan du trekker binære tall hvis du ikke husker det.
  6. Fortsett til problemet er løst. Ta med neste siffer fra deleren til resten nedenfor for å få 100. Fordi 11 100, skriver du en 1 som neste siffer i kvotienten. Fortsett å løse problemet som før:
    • Skriv 11 under 100 og trekk disse tallene for å få 1.
    • Ta ned det siste sifferet i utbyttet, så får du 11 for svaret.
    • 11 = 11, så skriv 1 som siste siffer i kvotienten (svaret).
    • Det er ingen resten, så problemet er fullført. Svaret er 00111, eller enklere, 111.
  7. Legg til et radikspunkt om nødvendig. Noen ganger er ikke resultatet et helt tall. Hvis du fortsatt har en rest etter å ha brukt det siste sifferet, kan du legge til et ".0" i utbyttet og et "." til kvotienten din, slik at du kan bringe et tall til og gå videre. Fortsett å gjøre dette til du når ønsket nøyaktighet, og fullfør deretter svaret. På papir kan du avrunde ved å utelate 0, eller hvis det siste sifferet er 1, fjerner du det og legger til 1 til det siste sifferet. Når du programmerer, bruk en av standardavrundingsalgoritmene for å unngå feil når du konverterer mellom binære og desimale tall.
    • Å dele binære tall fører ofte til å gjenta desimaler, oftere enn de som forekommer i desimalformat.
    • Dette er referert til av det mer generelle begrepet "radix point" som du møter i et hvilket som helst tallsystem, fordi du bare møter "desimalpunktet" innenfor desimalsystemet.

Metode 2 av 2: Bruk komplementmetoden

  1. Forstå grunnideen. En måte å løse divisjoner på - for hvilken som helst base - er å fortsette å trekke deleren fra utbyttet, deretter resten, og telle hvor mange ganger du kan fortsette å gjøre dette før du kommer til et negativt tall. Her er et eksempel på base 10, problemet 26 ÷ 7:
    • 26 - 7 = 19 (trukket 1 gang)
    • 19 - 7 = 12 (trukket 2 ganger)
    • 12 - 7 = 5 (trukket 3 ganger)
    • 5 - 7 = -2. Negativt tall, så opp igjen. Svaret er 3 med en rest på 5. Merk at denne metoden ikke tar desimaler.
  2. Lær å trekke fra ved hjelp av komplement. Selv om du enkelt kan bruke ovennevnte metode på binære tall, kan vi også bruke en mer effektiv metode som vil spare deg for tid når du programmerer binære divisjoner. Dette kalles metoden for binær komplement. Her er basen, beregner 111 - 011 (sørg for at begge tallene er like lange):
    • Finn komplementet til de andre termene, og trekk hvert siffer fra 1. Du kan enkelt gjøre dette med binære tall ved å sette hver 1 til 0 og hvert 0 til 1. I vårt eksempel blir 011 100.
    • Legg 1 til resultatet: 100 + 1 = 101. Dette kalles 2-komplementet. Vi vil nå vurdere en subtraksjon som et tillegg. Essensen er at vi behandler problemet som om vi skulle legge til et negativt tall, i stedet for å trekke et positivt tall etter å ha fullført prosedyren.
    • Legg resultatet til første periode. Løs tillegget: 111 + 101 = 1100.
    • Utelat det første sifferet (bære siffer). Fjern det første sifferet fra svaret ditt for å få det endelige resultatet. 1100 → 100.
  3. Kombiner de to konseptene ovenfor. Nå vet du hvordan subtraksjonsmetoden for å løse divisjonssummer fungerer og 2-komplementmetoden for løsning av subtraksjonssummer.Du kan kombinere de to i en metode for å løse divisjonssummer ved å følge trinnene nedenfor. Hvis du vil, kan du prøve å finne ut av det selv før du fortsetter.
  4. Trekk deleren fra utbyttet ved å legge til 2-komplementet. La oss gjøre problemet: 100011 ÷ 000101. Det første trinnet er å løse 100011 - 000101 ved hjelp av 2-komplementmetoden, slik at den legger opp:
    • 2s komplement av 000101 = 111010 + 1 = 111011
    • 100011 + 111011 = 1011110
    • Utelat det første sifferet (bære) → 011110
  5. Legg 1 til kvotienten. I et dataprogram er dette punktet der du øker kvotienten med 1. På papir, noter et sted et hjørne der det ikke ødelegger resten av arbeidet ditt. Vi har gjort en subtraksjon en gang, så kvotienten så langt er 1.
  6. Gjenta dette ved å trekke divisoren fra resten. Resultatet av vår siste beregning er resten som er igjen etter at divisoren "går inn" en gang. Fortsett å legge til divisorens 2 komplement og trekk bære. Legg til 1 i kvotienten hver gang, og fortsett til du får en rest som tilsvarer din mindre divisor:
    • 011110 + 111011 = 1011001 → 011001 (kvotient 1 + 1 = 10)
    • 011001 + 111011 = 1010100 → 010100 (kvotient 10 + 1 = 11)
    • 010100 + 111011 = 1001111 → 001111 (11+1=100)
    • 001111 + 111011 = 1001010 → 001010 (100+1=101)
    • 001010 + 111011 = 10000101 → 0000101 (101+1=110)
    • 0000101 + 111011 = 1000000 → 000000 (110+1=111)
    • 0 er mindre enn 101, så nå kan vi stoppe. Kvotienten 111 er svaret på det delvise problemet. Resten er det endelige resultatet av subtraksjonen vår, i dette tilfellet 0 (ingen hvile).

Tips

  • Instruksjonene for økning, reduksjon eller stabling bør vurderes før du bruker en binær beregning på et sett med maskininstruksjoner.
  • 2-komplementmetoden for subtraksjon fungerer ikke hvis tallene består av et annet antall sifre. Legg til ekstra nuller til det mindre tallet for å løse dette.
  • Ignorer det signerte sifferet i signerte binære tall før du gjør beregningen, bortsett fra når du prøver å avgjøre om svaret er positivt eller negativt.