Thursday 19 October 2017

Gjentatt Subtraksjon Metoden Binære Alternativer


Merk: Den mest signifikante (venstre) biten angir tegn på heltallet, derfor kalles det noen ganger tegnbiten. Hvis tegnbiten er null, er tallet større enn eller lik null eller positiv. Hvis tegnbiten er en, er tallet mindre enn null eller negativt. For å beregne 2s-komplementet av et heltall, vend det binære ekvivalentet til tallet ved å endre alle de til nuller og alle nullene til dem (også kalt 1s-komplement), og legg deretter til en. 0001 0001 (binær 17) 1110 1111 (twos komplement -17) 1110 1110 (omvendte biter) 1110 1110 0000 0001 1110 1111 (Legg til 1) Twos komplement-tillegg følger de samme reglene som binær tillegg. Twos komplement subtraksjon er binær tillegg av minuend til 2s komplement av subtrahend (legge til et negativt tall er det samme som å trekke en positiv en). Twos komplementmultiplikasjon følger de samme reglene som binær multiplikasjon. ganger 0000 0100 Twos komplement divisjon gjentas 2s komplement subtraksjon. 2s-komplementet til divisoren er beregnet, deretter lagt til utbyttet. For den neste subtraksjonssyklusen erstatter kvoten utbyttet. Dette gjentas til kvotienten er for liten til subtraksjon eller null, da blir det resten. Det endelige svaret er summen av subtraksjonssykluser pluss resten. 7 divider 3 2 rest 1 0000 0000 0000 0001 Sign-Magnitude Representation En annen metode for å representere negative tall er sign-magnitude. Sign-magnitude representasjon bruker også den mest signifikante delen av nummeret for å indikere tegnet. Et negativt tall er den 7-bits binære representasjonen av det positive tallet med den mest signifikante biten satt til en. Ulempene ved å bruke denne metoden for aritmetisk beregning er at et annet sett med regler er påkrevet, og at null kan ha to representasjoner (0, 0000 0000 og -0, 1000 0000). Offset binær representasjon En tredje metode for å representere signerte tall er kompensert binær. Begynn å beregne en kompensert binær kode ved å tildele halvparten av det største mulige tallet som nullverdien. Et positivt heltall er absolutt verdi til nullnummeret, og et negativt heltall trekkes fra. Offset binær er populær i AD - og DA-konverteringer, men det er fortsatt vanskelig for aritmetisk beregning. For eksempel, Største verdi for 8-biters heltall 2 8 256 Offset binær null verdi 256 divisjon 2 128 (desimal) 1000 0000 (binær) 1000 0000 (offset binær 0) 0001 0110 (binær 22) 1001 0110 (offset binær 22) Binær Kalkulator (Vil du beregne med desimaloperasjoner Du må konvertere dem først.) Om binær kalkulator Dette er en binær kalkulator med vilkårlig presisjon. Det kan legge til. trekke fra. multiplisere. eller del to binære tall. Den kan operere på svært store heltall og svært små brøkdeler 8212 og kombinasjoner av begge. Denne kalkulatoren er, i design, veldig enkel. Du kan bruke den til å utforske binære tall i sin mest grunnleggende form. Den opererer på ldquopurerdquo binære tall, ikke datatallformater som to8217s komplement eller IEEE binære flytende punkt. Slik bruker du den binære kalkulatoren Angi en operand i hver boks. Hver operand må være et positivt eller negativt tall uten kommaer eller mellomrom, ikke uttrykt som en brøkdel, og ikke i vitenskapelig notasjon. Brøkverdier er angitt med et radix-punkt (lsquo. rsquo, ikke lsquo, rsquo), og negative tall er prefiks med et minustegn (ldquo-rdquo). Velg en operasjon (, 8211,). Endre antall biter du vil vises i binærresultatet, hvis det er forskjellig fra standardinnstillingen (dette gjelder bare for divisjon, og da bare når svaret har en uendelig delingsdel). Klikk på lsquoCalculatersquo for å utføre operasjonen. Klikk på lsquoClearrsquo for å tilbakestille skjemaet og starte fra bunnen av. Hvis du vil endre en operand, skriv bare over det opprinnelige nummeret og klikk lsquoCalculatersquo 8212 det er ikke nødvendig å klikke lsquoClearrsquo først. På samme måte kan du endre operatøren og holde operandene som det er. Foruten resultatet av operasjonen vises antall siffer i operandene og resultatet. For eksempel, når du beregner 1.1101 111.100011 1101.1010110111, viser ldquoNum Digitsrdquo-boksen ldquo1.4 3.6 4.10rdquo. Dette betyr at operand 1 har et siffer i sin heltalldel og fire siffer i sin deldel, operand 2 har tre sifre i sin heltalldel og seks sifre i sin deldel, og resultatet har fire sifre i sin heltalldel og ti sifre i sin brøkdel. Tilsetning, subtraksjon og multiplikasjon gir alltid et begrenset resultat, men divisjon kan (i de fleste tilfeller) produsere en uendelig (gjentatt) brøkdel. Uendelige resultater blir avkortet 8212 ikke avrundet 8212 til det angitte antall bits. Uendelige resultater blir notert med en ellipsis (8230) vedlagt resultatet, og med et lsquo8734rsquo-symbol som antall brøkdeler. For divisjoner som representerer dyadiske fraksjoner. Resultatet vil være begrenset. og vises i full presisjon 8212 uavhengig av innstillingen for antall brøkdeler. For eksempel er 11010 til 24 fraksjonelle biter 0.0001100110011001100110018230, med ldquoNum Digitsrdquo ldquo1.0 4.0 0.8734rdquo 11100 0.11, med ldquoNum Digitsrdquo ldquo2.0 3.0 0.2rdquo. Bruke kalkulatoren til å utforske flytende punkt-aritmetikk Selv om denne kalkulatoren utfører ren binær aritmetikk, kan du bruke den til å utforske flytende punkt aritmetikk. For eksempel, si at du ville vite hvorfor, ved hjelp av IEEE dobbelt-presisjon binær flytende punkt aritmetisk, 129,95 10 1299,5, men 129,95 100 12994,999999999998181010596454143524169921875. Det er to kilder til upresisjon i en slik beregning: desimal til flytende punktkonvertering. og begrenset presisjon binær aritmetikk. Decimal til flytende punktkonvertering introduserer inexactness fordi en desimaloperand kanskje ikke har en eksakt flytende punkt ekvivalent begrenset presisjon binær aritmetikk introduserer inexactness fordi en binær beregning kan produsere flere biter enn det som kan lagres. I slike tilfeller skjer avrunding. 10 og 100 (begge desimaler) har eksakte flytpunktsekvivalenter (henholdsvis 1010 og 1100100), men 129.95 har bare en omtrentlig representasjon. Min decimal til binær omformer vil fortelle deg at i ren binær har 129,95 en uendelig repeterende brøkdel: 10000001.111100110011001100110011001100110011001100110 011 8230 Avrundet til de 53 bitene med dobbel presisjon, it8217s som er 129.94999999999998863131622783839702606201171875 i desimal. 129.95 10 129.95 10 beregnes som som tilsvarer 10100010011.011111111111111111111111111111111111111111 1 Dette er 54 betydelige biter langt, så når it8217 er avrundet til 53 biter blir det 129,95 100 129,95 100 beregnes som det tilsvarer 53 bit blir det som tilsvarer 12994.999999999998181010596454143524169921875 Diskusjon For å arbeide gjennom dette eksempelet måtte du opptre som en datamaskin, så kjedelig som det var. Først måtte du konvertere operandene til binære, avrunde dem om nødvendig da måtte du multiplisere dem og runde resultatet. Av praktiske årsaker er størrelsen på inngangene 8212 og antallet av brøkdeler i et uendelig divisjon resultat 8212 begrenset. Hvis du overskrider disse grensene, får du en feilmelding. Men innenfor disse grensene vil alle resultatene være nøyaktige (i tilfelle divisjon, resultatene er nøyaktige gjennom den avkortede bitposisjonen). Binær subtraksjon av Rick Regan emspFebruary 9th, 2012 Dette er den andre av en firedelerserie på ldquopencil og paperrdquo binær aritmetikk, som I8217m skriver som et supplement til min binære kalkulator. Den første artikkelen diskuterer binær tillegg Denne artikkelen diskuterer binær subtraksjon. Blyant-og-papirmetoden for binær subtraksjon er akkurat som blyant-og-papir-metoden for desimalundertrykkelse du lærte i grunnskolen. I stedet for å manipulere desimalnumre manipulerer du imidlertid binære tall, i henhold til et grunnleggende sett med regler eller ldquofacts. rdquo Decimal subtraksjon For desimal subtraksjon er de grunnleggende fakta ting som 5 8211 1 4, 9 8211 8 1 og 18 8211 9 9. I hvert tilfelle er svaret et enkeltsiffret, ikke-negativt heltall. De fleste fakta er ldquosingle-siffer minus single-digitrdquo problemer, men noen er ldquodouble-siffer minus single-digitrdquo problemer (de to siffer er tallene 10 til 18). Den sistnevnte representerer tilfeller av lån. som er prosessen som hindrer negative svar. Here8217s et eksempel på desimal subtraksjon: Etter at poengene er justert fortsetter subtraksjonen fra høyre til venstre. Røde karakterer indikerer lån. Hvis et ikke-nollsiffer lånes fra, er det krysset ut, en er trukket fra det, og det dekrementerte sifferet er skrevet over det, en 1 plasseres deretter ved siden av sifferet i låneposisjonen, noe som gjør det til et tosifret tall . Hvis et nullsiffer er lånt fra, lånes ldquocascadesrdquo til et ikke-nullsiffer er funnet. Here8217s eksempelet igjen, trinn for trinn: Noen refererer til dette som ldquoAmerican-metoden rdquo (selv om dette bare er en variant av det 8212, se Salman Khan8217s video. For eksempel). Uansett hva metoden din er, kan du bruke den til binære tall. Binær subtraksjon For binær subtraksjon er det fire fakta i stedet for ett hundre: De tre første er de samme som i desimal. Det fjerde faktum er den eneste nye det er lånesaken. Den gjelder når ldquotoprdquo sifferet i en kolonne er 0 og ldquobottomrdquo sifferet er 1. (Husk: I binær er 10 uttalt ldquoone-zerordquo eller ldquotwo. rdquo) Nå lader 8282 trekke 1011.11 fra 10101.101, etter samme algoritme som jeg brukte for desimal tall: Siden det er mange 0s i binære tall, kan det være mange lån 8212 og mange rotete, flotte cross-outs. Kontrollere svaret Du kan sjekke svaret på noen måter. En måte er å legge til resultatet (1001.111) i subtrahend (1011.11), og kontroller at svaret samsvarer med minuendet (10101.101): En annen måte er å konvertere operandene til desimal. gjør desimal subtraksjon, og konverter deretter desimalt svaret til binær. 10101.101 21.625 og 1011.11 11.75 og 21.625 8211 11.75 9.875. 9.875 1001.111, svaret vi fikk ved hjelp av binær subtraksjon. Du kan også sjekke svaret ved hjelp av min binære kalkulator. Trekke et større tall fra et mindre tall For å trekke et større tall fra et mindre nummer, bytt bare tallene, gjør subtraksjonen og neger resultatet. Diskusjon Merknad at jeg ikke diskuterte nummerbasen når jeg beskriver algoritmen den er base-uavhengig. Likevel kunne jeg ha snakket om to og to makters krefter, og hvordan prosessen kan visualiseres ved omgruppering. Målet mitt var å forklare bare den mekaniserte algoritmen (antagelig gjør du desimal subtraksjon mekanisk, tenker ikke lenger på hvorfor det fungerer). Subtrahering Using Complements Datamaskiner don8217t trekker slik at de trekker seg ved å legge til komplementer. It8217s mer effektiv. Du kan gjøre subtraksjon med komplementer med blyant og papir, men du vil ikke finne det mer effektivt. (I desimal, ville du bruke ni8217s komplement eller tiere komplement i binær, du ville bruke de komplement eller to komplement.) Takk så mye, dette er alle enkle metoder for elever og undervisning vedavyas, du kan sjekke hvilken av tallene er større en ved å bare teste hvilken som starter først (med 822018221), fra venstre til høyre. For eksempel sier let8217s at du har to tall i et skjema: 00001. (fire nuller, deretter 1, deretter noen siffer) 00000. (fire nuller, deretter 0, deretter noen siffer) I begge tallene er alle fire høyeste stillinger 2) er de samme: 0, så de kan ikke avvike med de. Men da har vi den femte posisjonen (telling fra venstre) hvor forskjellen er, og dette er den mest signifikante forskjellen (fordi den også er det viktigste sifferet). I det første nummeret, er 8282 822018221 tilstede i denne posisjonen, som stemmer overens med denne spesielle kraften på 2 (inkluderer den i nummeret). Men i det andre nummeret, there8217s 822008221 på den posisjonen, som betyr at denne kraften på 2 ikke er inkludert. Selv om alle 82208221s i det første nummeret ble satt til 822008221, og alle 82208221s i det andre nummeret ble satt til 822018221s, ville det første nummeret fortsatt være større med 1 fra bunnnummeret, fordi den mest signifikante biten DOBBELLE som kunne dekkes ved kombinasjonen av 82208221 biter under den. Så alle 82208221s satt i bunn nummeret vil fortsatt være den kraften på 2 mindre med andre ord, uansett hvor mye det prøver, kan det aldri komme opp med nummeret som har 822018221 på stillingen ved siden av raden på 82208221s. Så den enkleste måten å finne ut hvilket nummer som er størst, er å skanne begge tallene fra venstre til høyre, bit for bit (parvis), og som noen gang vil starte med 822018221 som først, er jo større. Takk for det. Jeg antar at jeg egentlig aldri har beskrevet hvordan du skal bestemme det større tallet når du ser på dem i binær. Rick, jeg forveksler meg, jeg forstår: plzz forklar meg Bare trekk 001110 fra 110110, i stedet for å trekke 110110 fra 001110. Deretter legger du bare et minustegn til svaret ditt. It8217 er akkurat som i desimal: 3-4 er det samme som - (4-3).

No comments:

Post a Comment