Opdeling af binære tal

Forfatter: Roger Morrison
Oprettelsesdato: 6 September 2021
Opdateringsdato: 1 Juli 2024
Anonim
Как принять квартиру у застройщика? Ремонт в НОВОСТРОЙКЕ от А до Я. #1
Video.: Как принять квартиру у застройщика? Ремонт в НОВОСТРОЙКЕ от А до Я. #1

Indhold

Opdeling af binære tal kan løses ved hjælp af lang division, en praktisk metode til at lære dig selv proceduren eller skrive et simpelt computerprogram. Alternativt tilbyder komplementmetoden til gentagen subtraktion en tilgang, som du måske ikke er bekendt med, selvom den ikke rigtig almindeligt bruges i programmering. Maskinsprog bruger normalt en estimeringsalgoritme for større effektivitet, men disse er ikke beskrevet her.

At træde

Metode 1 af 2: Brug af lang opdeling

  1. Gå gennem decimal lang division igen. Hvis det har været et stykke tid siden du har lavet lang opdeling med regelmæssige decimaltal (base 10) tal, skal du gennemgå bunden af ​​det igen for problemet 172 ÷ 4. Ellers skal du springe dette over og gå til næste trin for at lære denne procedure for binær numre.
    • Det udbytte divideres med skillevæg, og svaret er det kvotient.
    • Sammenlign divisoren med det første ciffer i udbyttet. Hvis divisoren er det største tal, skal du fortsætte med at tilføje cifre til udbyttet, indtil divisoren er det mindste tal. (For eksempel, når vi beregner 172 ÷ 4, sammenligner vi 4 og 1, finder ud af at 4> 1, og sammenlign derefter 4 med 17.)
    • Skriv det første ciffer i kvotienten over det sidste ciffer i det udbytte, der blev brugt til sammenligningen. Efter at have sammenlignet 4 og 17 bemærker vi, at 4 går ind i 17 fire gange, så vi skriver 4 som det første ciffer i vores kvotient, over 7.
    • Multiplicer og træk for at finde resten. Multiplicer kvotienten med divisoren, i dette tilfælde 4 x 4 = 16. Skriv 16 nedenfor 17, gør derefter 17 - 16 for resten, 1.
    • Gentage. Igen sammenligner vi divisoren 4 med det næste ciffer, 1, bemærker, at 4> 1, og "bring" det næste ciffer i udbyttet ned for at sammenligne 4 med 12 i stedet. 4 går ind i 12 tre gange uden rest, så vi kan skrive 3 som det næste ciffer i kvotienten. Svaret er 43.
  2. Opret en binær opsætning af lang division. Antag, at vi bruger 10101 ÷ 11 som et eksempel. Skriv dette som en lang division med 10101 som udbytte og 11 som deleren. Lad plads være over for at skrive kvotienten, og skriv dine beregninger nedenfor.
  3. Sammenlign divisoren med det første ciffer i udbyttet. Dette fungerer på samme måde som decimal lang division, men er faktisk meget lettere i binær form. Eller du kan ikke dele nummeret med divisoren (0), eller divisoren passer ind en gang (1):
    • 11> 1, så 11 "passer ikke" 1. Skriv et 0 som det første ciffer i kvotienten (over det første ciffer i udbyttet).
  4. Tag nu det næste ciffer og gentag, indtil du får 1. Her er de næste par trin fra vores eksempel:
    • Sænk det næste ciffer i udbyttet. 11> 10. Skriv en 0 i kvotienten.
    • Sæt det næste ciffer ned. 11 101. Skriv en 1 i kvotienten.
  5. Bestem resten. som i en decimal lang division multiplicerer vi det ciffer, vi lige har fundet (1) med divisoren (11), og skriver resultatet under vores udbytte på en linje med det ciffer, vi lige har beregnet. I binær form kan vi gøre dette hurtigere, fordi 1 x divisoren altid er lig med divisoren:
    • Skriv divisoren under udbyttet. Her skriver vi dette som 11 under de første tre cifre (101) i udbyttet.
    • Beregn 101 - 11 for resten, 10. Gennemgå hvordan man trækker binære tal, hvis du ikke kan huske det.
  6. Fortsæt, indtil problemet er løst. Bring det næste ciffer fra divisoren til resten nedenfor for at få 100. Fordi 11 100, skriver du en 1 som det næste ciffer i kvotienten. Fortsæt med at løse problemet som før:
    • Skriv 11 under 100, og træk disse tal for at få 1.
    • Sænk det sidste ciffer i udbyttet, så får du 11 til svaret.
    • 11 = 11, så skriv 1 som det sidste ciffer i kvotienten (svaret).
    • Der er ingen rest, så problemet er afsluttet. Svaret er 00111eller mere simpelt 111.
  7. Tilføj om nødvendigt et radix-punkt. Nogle gange er resultatet ikke et heltal. Hvis du stadig har en rest efter brug af det sidste ciffer, skal du tilføje et ".0" til udbyttet og et "." til din kvotient, så du kan bringe endnu et tal ned og gå videre. Fortsæt med at gøre dette, indtil du når den ønskede nøjagtighed, og afslut derefter dit svar. På papir kan du afrunde ved at udelade 0 eller, hvis det sidste ciffer er et 1, fjerne det og tilføje 1 til det sidste ciffer. Brug en af ​​standardafrundingsalgoritmerne til programmering for at undgå fejl ved konvertering mellem binære og decimale tal.
    • Opdeling af binære tal resulterer ofte i gentagelse af decimaler oftere end dem, der forekommer i decimalformat.
    • Dette refereres til af det mere generelle udtryk "radix-punkt", som du støder på i et hvilket som helst talsystem, fordi du kun støder på "decimaltegnet" inden for decimalsystemet.

Metode 2 af 2: Brug af komplementmetoden

  1. Forstå den grundlæggende idé. En måde at løse divisioner - for enhver base - er at fortsætte med at trække divisoren fra udbyttet, derefter resten, tælle hvor mange gange du kan fortsætte med at gøre dette, før du kommer til et negativt tal. Her er et eksempel på base 10, problemet 26 ÷ 7:
    • 26 - 7 = 19 (fratrukket 1 gang)
    • 19 - 7 = 12 (trukket 2 gange)
    • 12 - 7 = 5 (trukket 3 gange)
    • 5 - 7 = -2. Negativt tal, så op igen. Svaret er 3 med en rest på 5. Bemærk, at denne metode ikke tæller decimaler.
  2. Lær at trække ved hjælp af komplement. Mens du let kan anvende ovenstående metode på binære tal, kan vi også bruge en mere effektiv metode, der sparer dig tid ved programmering af binære divisioner. Dette kaldes den binære komplementmetode. Her er basen, beregner 111 - 011 (sørg for, at begge tal har samme længde):
    • Find komplementet til dem fra den anden periode, og træk hvert ciffer fra 1. Du kan nemt gøre dette med binære tal ved at indstille hver 1 til 0 og hver 0 til 1. I vores eksempel bliver 011 100.
    • Føj 1 til resultatet: 100 + 1 = 101. Dette kaldes 2's komplement. Vi vil nu overveje en subtraktion som en tilføjelse. Essensen er, at vi behandler problemet som om vi tilføjede et negativt tal i stedet for at trække et positivt tal efter at have afsluttet proceduren.
    • Føj resultatet til den første periode. Løs tilføjelsen: 111 + 101 = 1100.
    • Udelad det første ciffer (bære ciffer). Fjern det første ciffer fra dit svar for at få det endelige resultat. 1100 → 100.
  3. Kombiner de to begreber ovenfor. Nu ved du, hvordan subtraktionsmetoden til løsning af divisionssummer fungerer, og 2's komplementmetode til løsning af subtraktionssummer.Du kan kombinere de to i en metode til løsning af divisionssummer ved hjælp af nedenstående trin. Hvis du vil, kan du prøve at finde ud af det selv, før du fortsætter.
  4. Træk divisoren fra udbyttet ved at tilføje 2's komplement. Lad os gøre problemet: 100011 ÷ 000101. Det første skridt er at løse 100011 - 000101 ved hjælp af 2's komplementmetode, så det tilføjer:
    • 2's komplement på 000101 = 111010 + 1 = 111011
    • 100011 + 111011 = 1011110
    • Udelad det første ciffer (bære) → 011110
  5. Føj 1 til kvotienten. I et computerprogram er dette det punkt, hvor du øger kvotienten med 1. På papir skal du lave en note et eller andet sted i et hjørne, hvor det ikke ødelægger resten af ​​dit arbejde. Vi har med succes foretaget en subtraktion én gang, så kvotienten indtil videre er 1.
  6. Gentag dette ved at trække divisoren fra resten. Resultatet af vores sidste beregning er resten, der er tilbage, efter at skillevæggen "går ind" en gang. Fortsæt med at tilføje divisorens 2's komplement og trække bære. Føj 1 til kvotienten hver gang, og fortsæt, indtil du får en rest svarende til din mindre skillevæg:
    • 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 end 101, så nu kan vi stoppe. Kvotienten 111 er svaret på det delvise problem. Resten er det endelige resultat af vores subtraktion, i dette tilfælde 0 (ingen hvile).

Tips

  • Instruktioner om stigning, formindskelse eller stakning skal overvejes, inden der anvendes en binær beregning på et sæt maskininstruktioner.
  • 2's komplementmetode til subtraktion fungerer ikke, hvis tallene består af et andet antal cifre. Tilføj ekstra nuller til det mindre tal for at løse dette.
  • Ignorer det underskrevne ciffer i underskrevne binære tal, før du foretager beregningen, undtagen når du prøver at afgøre, om et svar er positivt eller negativt.