Aritmetiske operasjoner i ulike systemer. Teori om tallsystemer

Det finnes et umåtelig antall andre systemer foruten desimal, hvorav noen brukes til å representere og behandle informasjon i en datamaskin. Det finnes to typer tallsystemer: posisjonelle og ikke-posisjonelle.

Ikke-posisjonelle systemer er de der hvert siffer beholder sin betydning uavhengig av plasseringen i tallet. Et eksempel er det romerske tallsystemet, som bruker tall som I, V, X, L, C, D, M, etc.

Posisjonell er tallsystemer der betydningen av hvert siffer er avhenger av plasseringen. Posisjonssystemet er preget av beregningsgrunnlaget, som vil bli forstått som et tall £ som viser hvor mange enheter av ethvert siffer som trengs for å oppnå en enhet av høyere orden.

Du kan for eksempel skrive

Hva tilsvarer tall i desimaltallsystemet

Indeksen nedenfor angir tallgrunnlaget.

For å konvertere positive tall fra ett tallsystem til et annet, er to regler kjent:

Oversettelse av tall fra systemet , inn i systemet ;

Oversettelse av tall fra systemet , inn i systemet ved hjelp av systemaritmetikk ;

La oss vurdere den første regelen . La oss si at tallet er i desimalsystemet må representeres i binært . For å gjøre dette deles dette tallet på basen av systemet presentert i systemet , dvs. innen 210. Resten av divisjonen vil være det minst signifikante sifferet i det binære tallet. Heltallsdelen av resultatet fra divisjon deles igjen med 2. Gjenta divisjonsoperasjonen så mange ganger som mulig til kvotienten er mindre enn to.

Eksempel: konverter 89 10 til binær ved å bruke desimalregning

89 10 → 1011001 2

Den omvendte oversettelsen, i henhold til samme regel, er som følger:

Konverter 1011001 2 til et desimaltall ved å bruke binærtallsystemaritmetikk

De binære tallene 1000 og 1001 i henhold til tabell 2.1 er henholdsvis lik 8 og 9. Derfor er 1011001 2 → 89 10

Noen ganger er det mer praktisk å utføre den omvendte oversettelsen ved å bruke den generelle regelen for å representere et tall i et eller annet tallsystem.

La oss se på den andre regelen. Oversettelse av tall fra systemet , inn i systemet ved hjelp av systemaritmetikk . For å foreta en overføring trenger du hvert siffer i nummeret i systemet gange med tallsystemgrunnlaget representert i tallsystemet og til graden av plasseringen av dette nummeret. Deretter summeres de resulterende produktene.

Aritmetiske og logiske operasjoner

Aritmetiske operasjoner

La oss vurdere aritmetikken til det binære tallsystemet, siden det er dette systemet som brukes i moderne datamaskiner av følgende grunner:

Det er de enkleste fysiske elementene som bare har to tilstander og som kan tolkes som 0 og 1;

Aritmetisk behandling er veldig enkel.

Oktale og heksadesimale tall brukes ofte som et middel til å erstatte den lange og derfor vanskelige representasjonen av binære tall.

Operasjonene for addisjon, subtraksjon og multiplikasjon i det binære systemet er:

Som det ble demonstrert tidligere, for å nøye seg med bare en adderer, det vil si å utføre bare addisjonsoperasjoner, erstattes subtraksjonsoperasjonen med addisjon. For å gjøre dette, er koden for et negativt tall dannet som komplementet til tallene 2, 10, 100, etc.

Fordi I det binære tallsystemet brukes bare 2 siffer i registrering av tall - 0 og 1, noe som betyr at når man legger til 1 + 1, skrives 0 i det minst signifikante sifferet, og 1 går til det mest signifikante sifferet.

I analogi med 10-ss: 9 + 1 (tallet ti er ikke i notasjonen av tall), er 0 og 1 skrevet i det mest signifikante sifferet, noe som resulterer i 10.

Eksempler

1) La oss legge til 10110 2 og 111011 2 i en kolonne. De øverst indikerer en overføring fra forrige siffer:

2) Utfør addisjon for følgende binære tall:

3) Legg til tallene: 10000000100 2 + 111000010 2 og sjekk

10000000100 2 + 111000010 2 = 10111000110 2 .

La oss sjekke beregningsresultatene ved å konvertere til desimaltallsystemet. For å gjøre dette vil vi konvertere hvert ledd og sum til desimaltallsystemet, og utføre addisjonen av leddene i desimaltallsystemet. Resultatet må samsvare med beløpet.

10000000100 2 = 1 × 2 10 + 1 × 2 2 = 1024 + 4 = 1028 10

111000010 2 = 1× 2 8 + 1× 2 7 + 1× 2 6 + 1 × 2 1 = 256 + 128 + 64 + 2 = 450 10

10111000110 2 = 1 × 2 10 + 1 × 2 8 + 1 × 2 7 + 1 × 2 6 + 1 × 2 2 + 1 × 2 1 =

1024 + 256 + 128 + 64 + 4 + 2 =1478 10

1028 10 + 450 10 =1478 10 .

Resultatene er de samme, derfor ble beregningene i det binære tallsystemet utført korrekt.

Oktale tall

Oktaltall addisjonstabell

+

Når du regner i det oktale systemet, må du huske at maksimalt siffer er 7. En overføring under addisjon skjer når summen i neste siffer er større enn 7. Et lån fra det høyeste sifferet er lik 10 8 = 8, og alle "mellomliggende" sifre er fylt med tallet 7 - det høyeste sifferet i tallsystemet.

Eksempel

1) I eksemplet betyr oppføringen 1⋅8 + 2 at resultatet er en sum større enn 7, som ikke passer inn i ett siffer. Den ene går i overføring, og de to forblir i denne kategorien.

2) Utfør tillegg 223,2 8 + 427,54 8 og kontroller de oppnådde resultatene.

223,2 8 + 427,54 8 = 652,74 8 .

La oss sjekke beregningsresultatene ved å konvertere til desimaltallsystemet:

223,2 8 = 2 × 8 2 + 2 × 8 1 + 3 × 8 0 + 2 × 8 -1 = 128 + 16 + 3 + 0,25 =

427,54 8 = 4 × 8 2 + 2 × 8 1 + 7 × 8 0 + 5 × 8 -1 + 4 × 8 -2 =

256 + 16 + 7 + 0,625 + 0,0625= 279,6875 10

652,74 8 = 6 × 8 2 + 5 × 8 1 + 2 × 8 0 + 7 × 8 -1 + 4 × 8 -2 =

384 + 40 + 2 + 0,875 + 0,0625 = 426,9375 10

147,25 10 + 279,6875 10 =426,9375 10

Resultatene er de samme, derfor ble beregningene i oktaltallsystemet utført korrekt.

Heksadesimale tall

Heksadesimal addisjonstabell

+ EN B C D E F
EN B C D E F
EN B C D E F
EN B C D E F
EN B C D E F
EN B C D E F
EN B C D E F
EN B C D E F
EN B C D E F
EN B C D E F
EN B C D E F
EN EN B C D E F
B B C D E F 1A
C C D E F 1A 1B
D D E F 1A 1B 1C
E E F 1A 1B 1C 1D
F F 1A 1B 1C 1D 1E

Når du utfører tillegg, må du huske at i et base-16-system vises en bære når summen i neste siffer overstiger 15. Det er praktisk å først omskrive de opprinnelige tallene, og erstatte alle bokstavene med deres numeriske verdier.

Eksempler

2) Utfør tillegget 3B3,6 16 + 38B,4 16 og kontroller

3B3,6 16 + 38B,4 16 = 73E,A 16.

La oss sjekke:

3B3.6 16 = 3 × 16 2 + 11 × 16 1 + 3 × 16 0 + 6 × 16 -1 = 768 + 176 +

3 + 0,375 = 947,375 10

38B.4 16 = 3 × 16 2 + 8 × 16 1 + 11 × 16 0 + 4 × 16 -1 = 768 + 128 +

11 + 0,25 = 907,25 10

73E,A 16 = 7 × 8 2 + 3 × 8 1 + 14 × 8 0 + 10 × 8 -1 = = 1792 + 48 + 14 + 0,625 = 1854,625 10

947,375 10 + 907,25 10 = 1854,625 10 .

Resultatene er de samme, derfor ble beregningene i det heksadesimale tallsystemet utført korrekt.

Subtraksjon

Binære tall

Subtraksjon utføres omtrent på samme måte som i desimalsystemet. Her er de grunnleggende reglene:

0 – 0 = 0, 1 – 0 = 1, 1 – 1 = 0, 10 2 – 1 = 1.

I sistnevnte tilfelle må du ta opp lån fra den forrige kategorien.

Subtraksjon utføres analogt med desimaltallsystemet.

For å forstå prinsippet, la oss midlertidig gå tilbake til desimalsystemet. Trekk tallet 9 fra tallet 21:

Siden 9 ikke kan trekkes fra 1, må du ta et lån fra forrige siffer, som inneholder 2. Som et resultat legges 10 til det lave sifferet, og i de neste 2 reduseres til 1. Nå kan du trekke fra: 1 + 10 – 9 = 2. I det høye sifferet trekkes null fra den gjenværende enheten:

En mer kompleks sak er et lån fra en fjern (ikke i nærheten) kategori. La oss trekke 9 fra 2001. I dette tilfellet er det ikke mulig å låne fra nærmeste siffer (det er 0), så vi tar et lån fra sifferet der tallet 2 er. Som et resultat fylles alle mellomsiffer med tallet 9, dette er det høyeste sifferet i desimaltallsystemet:

I det binære tallsystemet, når et lån tas, legges ikke 10, men 102 = 2 (grunnlaget til tallsystemet) til det "arbeidende" sifferet, og alle "mellomliggende" sifre (mellom "arbeidende" og en fra der lånet er tatt) fylles ikke med nire , men i enheter (det viktigste sifferet i tallsystemet).

Eksempler

Hvis du trenger å trekke et større tall fra et mindre, trekker du det mindre tallet fra det større og setter et minustegn på resultatet:

3) 4)

Oktale tall

1)

Når du trekker fra, betyr "– 1" at det tidligere var et lån fra denne kategorien (verdien ble redusert med 1), og "+ 8" betyr et lån fra neste kategori.

2) Subtraksjon

Heksadesimale tall

Når du trekker fra, er et lån fra det høyeste sifferet lik 10 16 = 16, og alle "mellomliggende" sifre er fylt med tallet F - det høyeste sifferet i tallsystemet.

For eksempel,

1)

2)

Multiplikasjon

Binære tall

X

Multiplikasjon og lang divisjon i det binære systemet utføres omtrent på samme måte som i desimalsystemet (men ved å bruke reglene for binær addisjon og subtraksjon).

For eksempel ,

1) 2)

Oktale tall

Oktal multiplikasjonstabell

´

Ved å bruke den oktale multiplikasjonstabellen, med de samme reglene som gjelder i desimaltallsystemet, utføres multiplikasjon og divisjon av oktale flersifrede tall.

Eksempel

Heksadesimale tall

Gangetabell

´ EN B C D E F
EN B C D E F
EN C E 1A 1C 1E
C F 1B 1E 2A 2D
C 1C 2C 3C
EN F 1E 2D 3C 4B
C 1E 2A 3C 4E 5A
E 1C 2A 3F 4D 5B
1B 2D 3F 5A 6C 7E
EN EN 1E 3C 5A 6E 8C
B B 2C 4D 6E 8F 9A A5
C C 3C 6C 9C A8 B4
D D 1A 4E 5B 8F 9C A9 B6 C3
E E 1C 2A 7E 8C 9A A8 B6 C4 D2
F F 1E 2D 3C 4B 5A A5 B4 C3 D2 E1

Eksempel

Inndeling separat inn i desimalsystemet, siden for tall fra 0 til 7 deres oktale notasjon sammenfaller med desimalen);

3) Brett

Løsning (via heksadesimal):

1) (først konvertert til det binære systemet, deretter ble den binære notasjonen til tallet delt inn i tetrader fra høyre til venstre hver tetrad ble konvertert til heksadesimal; i dette tilfellet kan tetrader konverteres fra det binære systemet til desimal og erstatt deretter alle tall større enn 9 med bokstaver - A, B, C, D, E, F);

2) , ingen grunn til å overføre noe sted;

3) brett

4) konverter alle svar til heksadesimal:

121 8 = 001 010 001 2 = 0101 0001 2 = 51 16 (konvertert til det binære systemet i triader, delt inn i tetrader fra høyre til venstre, hver tetrad ble oversatt hver for seg inn i desimalsystemet ble alle tall større enn 9 erstattet med bokstaver - A, B, C, D, E, F).

171 2 = 001 111 001 2 = 0111 1001 2 = 79 16 ,

69 16, trenger ikke å oversette

1000001 2 = 0100 0001 2 = 41 16 .

Aritmetiske operasjoner i alle posisjonstallsystemer utføres etter de samme reglene. For å utføre aritmetiske operasjoner på tall representert i forskjellige tallsystemer, er det nødvendig å først konvertere dem til ett tallsystem og ta hensyn til det faktum at overføringen til neste siffer under addisjonsoperasjonen og lånet fra det høyeste sifferet i løpet av subtraksjonsoperasjon bestemmes av verdien av grunntallet til tallsystemet.

Aritmetiske operasjoner i det binære tallsystemet er basert på tabeller for addisjon, subtraksjon og multiplikasjon av ensifrede binære tall.

Når du legger til to enheter, renner sifferet over og enheten overføres til det høyeste sifferet; når du trekker fra 0–1, gis det et lån fra det høyeste sifferet; i tabellen "Subtraksjon" er dette lånet betegnet 1 med en linje over nummer (tabell 3).

Tabell 3

Nedenfor er eksempler på å utføre aritmetiske operasjoner på tall representert i forskjellige tallsystemer:

Aritmetiske operasjoner på heltall representert i forskjellige tallsystemer implementeres ganske enkelt ved å bruke Kalkulator- og MS Excel-programmene.

1.3. Representerer tall i en datamaskin

Numeriske data behandles i en datamaskin ved hjelp av det binære tallsystemet. Tall lagres i datamaskinens minne i binær kode, det vil si som en sekvens av nuller og enere, og kan representeres i fast eller flyttallformat.

Heltall lagres i minnet i fastpunktformat. Med dette formatet for å representere tall, er et minneregister bestående av åtte minneceller (8 bits) tildelt for lagring av ikke-negative heltall. Hvert siffer i en minnecelle tilsvarer alltid det samme sifferet i tallet, og kommaet er plassert til høyre etter det minst signifikante sifferet og utenfor siffernettet. For eksempel vil nummeret 110011012 bli lagret i et minneregister som følger:

Tabell 4

Den maksimale verdien av et ikke-negativt heltall som kan lagres i et register i fastpunktformat kan bestemmes ut fra formelen: 2n – 1, hvor n er antall sifre i tallet. Maksimalt antall vil være lik 28 - 1 = 25510 = 111111112 og minimum 010 = 000000002. Dermed vil området for endringer i ikke-negative heltall være fra 0 til 25510.

I motsetning til desimalsystemet, har det binære tallsystemet i datamaskinrepresentasjonen av et binært tall ikke symboler som indikerer tegnet til tallet: positive (+) eller negative (-), derfor, for å representere heltall med fortegn i det binære systemet, to tallrepresentasjonsformater brukes: tallverdiformat signert og tos komplementformat. I det første tilfellet tildeles to minneregistre (16 biter) for lagring av fortegnede heltall, og det mest signifikante sifferet (lengst til venstre) brukes som tegnet på tallet: hvis tallet er positivt, skrives 0 til fortegnsbiten , hvis tallet er negativt, så 1. For eksempel vil tallet 53610 = 00000010000110002 bli representert i minneregistrene i følgende form:

Tabell 5

og et negativt tall -53610 = 10000010000110002 i formen:

Tabell 6

Det maksimale positive tallet eller det minste negative tallet i fortegnet tallverdiformat (som tar hensyn til representasjonen av ett siffer per tegn) er 2n-1 – 1 = 216-1 – 1 = 215 – 1 = 3276710 = 11111111111111112 og tallområdet vil være fra - 3276710 til 32767.

Oftest, for å representere fortegnede heltall i det binære systemet, brukes de to komplementkodeformatet, som lar deg erstatte den aritmetiske operasjonen av subtraksjon i en datamaskin med en addisjonsoperasjon, som betydelig forenkler strukturen til mikroprosessoren og øker ytelsen. .

For å representere negative heltall i dette formatet, brukes tos komplementkode, som er modulen til et negativt tall til null. Konvertering av et negativt heltall til tos komplement utføres ved å bruke følgende operasjoner:

1) skriv modulen til nummeret i direkte kode i n (n = 16) binære sifre;

2) få den omvendte koden til tallet (inverter alle sifrene i tallet, dvs. erstatt alle enere med nuller og nuller med enere);

3) legg til ett til det minst signifikante sifferet til den resulterende omvendte koden.

For eksempel, for tallet -53610 i dette formatet, vil modulen være 00000010000110002, den gjensidige koden vil være 1111110111100111, og tilleggskoden vil være 1111110111101000.

Det må huskes at komplementet til et positivt tall er selve tallet.

For å lagre andre signerte heltall enn 16-bits datamaskinrepresentasjon når den brukes to minneregistre(dette tallformatet kalles også det korte heltallsformatet), de middels og lange heltallsformatene med fortegn brukes. For å representere tall i mellomtallsformatet brukes fire registre (4 x 8 = 32 biter), og for å representere tall i det lange tallformatet brukes åtte registre (8 x 8 = 64 biter). Verdiområdene for middels og lange tallformater vil være henholdsvis: -(231 – 1) ... + 231 – 1 og -(263-1) ... + 263 – 1.

Datarepresentasjon av tall i fastpunktformat har sine fordeler og ulemper. TIL fordeler inkluderer enkelheten ved å representere tall og algoritmer for å implementere aritmetiske operasjoner; ulempene er det begrensede utvalget av representasjon av tall, som kan være utilstrekkelig for å løse mange problemer av praktisk art (matematisk, økonomisk, fysisk, etc.).

Reelle tall (endelige og uendelige desimaler) behandles og lagres i en datamaskin i flyttallformat. Med dette tallrepresentasjonsformatet kan plasseringen av desimaltegnet i oppføringen endres. Ethvert reelt tall K i flyttallformat kan representeres som:

hvor A er mantissen til tallet; h – base av tallsystemet; p – nummerrekkefølge.

Uttrykket (2.7) for desimaltallsystemet vil ha formen:

for binær -

for oktal -

for heksadesimal -

Denne formen for tallrepresentasjon kalles også normal . Med en endring i rekkefølgen skifter kommaet i tallet, det vil si at det ser ut til å flyte til venstre eller høyre. Derfor kalles den normale formen for å representere tall flytende punktform. Desimaltallet 15,5, for eksempel, i flyttallformat kan representeres som: 0,155 102; 1,55 101; 15,5 100; 155,0 10-1; 1550.0 · 10-2 osv. Denne formen for desimal flyttallsnotasjon 15.5 brukes ikke når du skriver dataprogrammer og legger dem inn i en datamaskin (datamaskininndataenheter aksepterer bare lineær dataregistrering). Basert på dette konverteres uttrykk (2.7) for å representere desimaltall og legge dem inn i datamaskinen til formen

hvor P er rekkefølgen av tall,

dvs. i stedet for grunnflaten til tallsystemet 10, skriver de bokstaven E, i stedet for et komma, en prikk, og multiplikasjonstegnet er ikke plassert. Dermed vil tallet 15,5 i flytende komma og lineært format (datamaskinrepresentasjon) skrives som: 0,155E2; 1,55E1; 15,5E0; 155,0E-1; 1550.0E-2, etc.

Uavhengig av tallsystemet, kan ethvert tall i flyttallform representeres av et uendelig antall tall. Denne formen for opptak kalles unormalisert . For en entydig representasjon av flyttall, brukes en normalisert form for å skrive et tall, der mantissen til tallet må oppfylle betingelsen

hvor |A| - den absolutte verdien av mantissen til tallet.

Betingelse (2.9) betyr at mantissen må være en egenbrøk og ha et siffer som ikke er null etter desimaltegnet, eller, med andre ord, hvis mantissen ikke har en null etter desimaltegnet, så kalles tallet normalisert . Så, tallet 15,5 i normalisert form (normalisert mantisse) i flytende kommaform vil se slik ut: 0,155 102, dvs. den normaliserte mantissen vil være A = 0,155 og rekkefølgen P = 2, eller i datamaskinrepresentasjonen av tallet 0,155E2.

Flytende kommatall har et fast format og opptar fire (32 bits) eller åtte byte (64 bits) dataminne. Hvis et tall opptar 32 biter i datamaskinens minne, er det et vanlig presisjonstall; hvis det er 64 biter, så er det et dobbelt presisjonstall. Når du skriver et flyttall, tildeles biter for å lagre fortegnet for mantissen, fortegnet for eksponenten, mantissen og eksponenten. Antall sifre tildelt rekkefølgen av nummeret bestemmer variasjonsområdet for tallene, og antall sifre som er tildelt for å lagre mantissen bestemmer nøyaktigheten som nummeret er spesifisert med.

Når du utfører aritmetiske operasjoner (addisjon og subtraksjon) på tall presentert i flyttallformat, implementeres følgende prosedyre (algoritme):

1) rekkefølgen av tall som aritmetiske operasjoner utføres på, er justert (rekkefølgen til det minste tallet i absolutt verdi øker til rekkefølgen til det større tallet i absolutt verdi, mantissen reduseres med samme antall ganger);

2) aritmetiske operasjoner utføres på mantissene til tall;

3) det oppnådde resultatet er normalisert.

Binært tallsystem Addisjon av ensifrede binære tall: 0+0=0 1+0=1 0+1=1 1 + 1 = 10 Eksempel 1101 + 101 -----10010

Binært tallsystem Subtraksjon av ensifrede binære tall: 0 -0=0 1 -0=1 0 - 1 = (lån fra det mest signifikante sifferet) 1 1 -1=0 Eksempel: 1110 - 101 ---1001

Binært tallsystem Multiplisere ensifrede binære tall: 0*0=0 1*0=0 0*1=0 1*1=1 Eksempel: 1110 * 10 -----+ 0000 1110 ------- 11100

Binært tallsystem Divisjon utføres på samme måte som i desimaltallsystemet: 1110 10 11 10 10 10 111

Utføre aritmetiske operasjoner på binære tall i forskjellige rekkefølger: sammenligne ordrer; og er justert, addering eller subtrahering av mantissen utføres; Resultatet normaliseres om nødvendig.

Utføre aritmetiske operasjoner på binære tall i forskjellige rekkefølger: Eksempel. Addisjon X 1=0,1001*2101 X 2=0,1100*2100 1) p=101 -100=001 X 2=0,0110*2101 2)0,1001 +0,0110 0,1111 3) X 1*0, 101=

Utføre aritmetiske operasjoner på binære tall i forskjellige rekkefølger: Eksempel. Subtraksjon X 1=0,1001*2101 X 2=0,1100*2100 1) p=101 -100=001 X 2=0,0110*2101 2) 0,1001 -0,0110 0,0011 3) X 101 - 100=001 X 2=0,0110*2101 2) 0,1001 -0,0110 0,0011 3) X 01,1 - 0

Utføre aritmetiske operasjoner på binære tall i forskjellige rekkefølger: Eksempel. Multiplikasjon X 1=q 1*2 p 1 X 2=q 2*2 p 2 X 1=10=0, 10*210 X 2=10=0, 10*210 0, 10 *0, 10 0 00 01 0 000____ 0, 0100 X 1*X 2=q 1*q 2*2(p 1+p 2) р1+р2=10+10=100 X 1*X 2=0, 0100*2100

Utføre aritmetiske operasjoner på binære tall i forskjellige rekkefølger: Eksempel. Divisjon X 1=q 1*2 p 1 X 2=q 2*2 p 2 X 1=0, 110=110*2 -11 X 2=0, 10=10*2 -10 10 10 11 10 10 0 p1 -р2=-11 -(-10)=-01 =11*2 -01

PC-er bruker følgende bitrutenett for å representere tall: 1 byte (8 bits) – halvt ord 2 byte (16 bits) – ord 4 byte (32 bits) – binært ord 8 byte (64 bits) – utvidet ord -310 = -112 V Åtte-bits rutenettet vil se slik ut: 1000011 For å kode fortegnet til et tall, tildeles en spesiell bit, kalt en tegnbit. Den høyeste biten i rutenettet er tilordnet den, "+" er kodet 0, "-" er kodet 1.

Ved å utføre aritmetiske operasjoner i maskinkoder kan du: redusere subtraksjonsoperasjonen til addisjonsoperasjonen automatisk få tegnet på summen, oppdage overløp av bitnettet

Typer maskinkoder Den direkte koden til et tall er representert som en absolutt verdi med et binært talltegn - dette er selve det binære tallet, der alle sifrene som representerer verdien er skrevet som i matematisk notasjon, og tegnet skrives som en kode (0, 1) i det mest signifikante sifferet. Reverskoden til et positivt tall er den samme som viderekoblingskoden. Den komplementære koden til den positive er den samme som dens direkte kode. tall

Typer maskinkoder Den omvendte koden til et negativt tall oppnås ved å erstatte verdiene til alle sifrene i tallet med de motsatte, med unntak av tegnsifferet. 310 = 112 i direkte, komplement og omvendt kode vil se slik ut: 0000011 -310 = -112 i direkte kode vil se slik ut: 1000011 -310 = -112 i omvendt kode vil se slik ut: 11111100

Typer maskinkoder Den komplementære koden til et negativt tall oppnås ved å øke reverskoden med 1. -310 = -112 vil reverskoden se slik ut: 11111100 -310 = -112 den komplementære koden vil se slik ut: 11111101

Eksempel 1. Utføre en operasjon i omvendt kode X 1 -X 2=17 -5= 17+(-5)=12 [X 1] pr=0001 [X 2] pr=10000101 [X 1] arr=0001 [X 2 ] arr=11111010 Når du utfører operasjoner i omvendt kode, legges enheten som går utover det åttende sifferet til det lave sifferet i nummeret.

Eksempel 2. X 1 -X 2=5 -17= 5+(-17)=-12 [X 1] pr=00000101 [X 2] pr=10010001 00000101 +1110 11110011 arr. 10001100= -12 [X 1] arr=00000101 [X 2] arr=1110 Svaret skrives alltid i direkte kode. Hvis resultatet er et negativt tall, må det konverteres til direkte kode.

Eksempel 3. Utføre en operasjon i tilleggskode X 1 -X 2=17 -5= 17+(-5)=12 [X 1] pr=0001 [X 2] pr=10000101 [X 1] arr=0001 [X 2 ] arr=11111010 [Х 1] extra=0001 [Х 2] extra=11111011 Når du utfører operasjoner i tos komplementkode, er enheten som går utover det 8. sifferet KASTER UT.

Eksempel 4. X 1 -X 2=5 -17= 5+(-17)=-12 [X 1] pr=00000101 [X 2] pr=10010001 [X 1] arr=00000101 [X 2] arr= 1110 [X 1] extra=00000101 [X 2] extra= 11101111 Vi fikk et negativt tall i tillegget. kode. For å konvertere den til en direkte kode, må du: 1. Invertere alle sifrene i nummeret, med unntak av det signerte; 2. Legg til 1 til det minst signifikante sifferet igjen.

Modifiserte komplementære maskinkoder Modifisert komplementærkode hentes fra komplementærkode ved ganske enkelt å duplisere fortegnsbiten. "00" tilsvarer "+"-tegnet, "11" til "-"-tegnet. Enhver annen kombinasjon ("01" eller "10") oppnådd i fortegnsbitene er et tegn på overløp av bitnettet og resultatet er feil. tegn 5 4 3 2 1 0

Eksempel La oss konvertere X og Y til modifisert komplementkode: Utfør addisjon: I dette eksemplet er tegnbitene atskilt med komma!! Det er ingen overløp (i fortegnsbitene "00" - resultatet er et positivt tall), så resultatet er riktig (X+Y=1111=41 -26= 15).

Eksempel 2 Regelmessig registrering av tallet x = -41 = -101001 y = 26 = +011010 Modifisert omvendt kode 11 010110 00 011010 Modifisert tilleggskode 11 010111 00 011010 x +y = -41 +26 = -15 11 010111 +00 011010 11 110001 legg til. mod. kode Det er ingen overløp (i fortegnsbitene "11" - resultatet er et negativt tall), så det resulterende resultatet må konverteres til en direkte kode. 11 110 001 tillegg mod. kode 11 001110 revers. mod. kode + 1 11 001111, som tilsvarer nummeret - 1510

| Informatikk og informasjons- og kommunikasjonsteknologi | Leksjonsplanlegging og undervisningsmateriell | 10. klasse | Planlegging av leksjoner for studieåret (FSES) | Aritmetiske operasjoner i posisjonstallsystemer

Leksjon 15
§12. Aritmetiske operasjoner i posisjonstallsystemer

Aritmetiske operasjoner i posisjonstallsystemer

Aritmetiske operasjoner i posisjonstallsystemer med grunntall q utføres etter regler som ligner på reglene som gjelder i desimalsystemet.

På barneskolen brukes addisjons- og multiplikasjonstabeller for å lære barn å telle. Lignende tabeller kan kompileres for ethvert posisjonsnummersystem.

12.1. Addisjon av tall i tallsystemet med grunntall q

Tenk på eksempler på addisjonstabeller i ternære (tabell 3.2), oktale (tabell 3.4) og heksadesimale (tabell 3.3) tallsystemer.

Tabell 3.2

Tillegg i ternært tallsystem

Tabell 3.3

Addisjon i heksadesimalt tallsystem

Tabell 3.4

Addisjon i oktaltallsystem

q få beløpet S to tall EN Og B, må du summere sifrene som danner dem med sifre Jeg fra høyre til venstre:

Hvis a i + b i< q, то s i = a i + b i , старший (i + 1)-й разряд не изменяется;
hvis a i + b i ≥ q, da s i = a i + b i - q, økes det mest signifikante (i + 1) sifferet med 1.

Eksempler:

12.2. Subtrahere tall i grunntallet q tallsystemet

Så det i et tallsystem med en base q få forskjellen R to tall EN Og I, er det nødvendig å beregne forskjellene mellom sifrene som danner dem etter sifre Jeg fra høyre til venstre:

Hvis a i ≥ bi, så er r i = a i - bi, det mest signifikante (i + 1) sifferet endres ikke;
hvis en i< b i , то r i = a i - b i + g, старший (i + 1)-й разряд уменьшается на 1 (выполняется заём в старшем разряде).