Meny
Är gratis
registrering
Hem  /  Navigatörer/ Alla tal kan betraktas som verkliga. Representerar siffror i en dator

Vilket tal som helst kan betraktas som verkligt. Representerar siffror i en dator

huvud funktion balanserade talsystem - när man utför aritmetiska operationer används inte "teckenregeln".

Använder Fibonaccis talsystem. I början av datoreran gjordes ytterligare två upptäckter inom området positionella sätt att representera tal, som dock är föga kända och vid den tiden inte väckte mycket uppmärksamhet av matematiker och ingenjörer. Vi talar om egenskaperna hos Fibonacci-talsystemet, eller SS för det gyllene snittet.

Under de sista decennierna av XX-talet fick en grupp matematiker under ledning av en professor i Sovjetunionen extremt intressanta resultat relaterade till att lösa problemet med tillförlitligheten av lagring, bearbetning och överföring av information i datorsystem... Matematiker föreslog att använda Fibonacci-systemet som en SS i datorer. Kom ihåg att alfabetet i detta system är siffrorna 0 och 1, och grunden är sekvensen av Fibonacci-nummer: 1, 2, 3, 5, 8, 13, 21,

Den största fördelen med Fibonacci-koder för praktiska tillämpningar består av deras "naturliga" redundans, som kan användas för att kontrollera numeriska omvandlingar. Denna redundans visar sig i egenskapen hos flera representationer av samma nummer. Till exempel har siffran 30 i Fibonacci-koden flera representationer:

30 = 1001101fib = 1010001fib = 111101fib.

I det här fallet kan olika kodrepresentationer av samma nummer erhållas från varandra med hjälp av speciella Fibonacci-falsningar (011 → 100) och svepoperationer (100 → 011) som utförs på kodbilden av numret. Om vi ​​utför alla möjliga veckningar över kodbilden kommer vi till en speciell Fibonacci-bild, kallad minimal form , där det inte finns två intilliggande enheter. Om vi ​​utför alla möjliga svepoperationer i kodbilden så kommer vi till en speciell Fibonacci-bild, kallad maximal , eller utplacerade ,form , där två nollor inte förekommer bredvid varandra.

Analysen av Fibonacci-arithmetik visade att dess huvudsakliga operationer är operationerna av faltning, utveckling och operationen att reducera Fibonacci-koden till ett minimum baserat på dem.

Dessa matematiska resultat blev grunden för projektet att skapa dator och mätsystem baserat på Fibonaccis talsystem.

När man utvecklade elementbasen för ny datorteknik var det huvudsakliga operativa elementet enheten för att reducera Fibonacci-koden till ett minimum. Denna enhet implementerades genom RS-vippor och grindar "AND" och "OR". Det skapades prototyper av en mikrokrets som utför följande operationer: skriva och läsa data, faltning, svepning, förflyttning, absorption, reducering till minimiform, summering, subtrahering, reversering av skift, logisk multiplikation, logisk addition och addition modulo 2.

En utmärkande egenskap hos mikrokretsen var närvaron av en kontrollutgång, på vilken information om fel arbete mikrokretsar.

Således var huvudresultatet av denna utveckling skapandet av den första någonsin datateknik mikrokretsar för implementering av en självövervakande Fibonacci-processor med 100 % garanti för att upptäcka fel som uppstår vid byte av triggers.

Och även om det ännu inte har varit möjligt att skapa en Fibonacci-dator av olika anledningar, teoretisk grund av denna riktning är av otvivelaktigt intresse och kan bli en källa till nya idéer inte bara inom datorområdet utan också inom matematikområdet. Användningen av "Fibonacci" representationer i mätteknik och digital bearbetning signaler.

Användning av ett restklasssystem. I utvecklingen av datorteknik står matematiker alltid inför det svåraste problemet - skapandet av effektiva (de kallas ofta "begränsande") algoritmer för att utföra aritmetiska operationer i en dator. Som en del av att lösa detta problem uppfann forskare nya talsystem och utvecklade datoraritmetik baserad på dem, som gör det möjligt att bygga datorenheter, vars hastighet och tillförlitlighet är överlägsen datorer baserade på binär aritmetik. Dessa SS inkluderar ett icke-positionellt system av restklasser, vissa hierarkiska nummersystem, etc.

Hierarkiska talsystem är konstruerade utifrån idén om att kombinera positionella och icke-positionella SS, medan de måste kombinera positiva sidor system som ingår i dem och vara fria från sina brister. Principen för att konstruera hierarkiska SS är i allmänhet enkel. Vissa externt system beräkning A med alfabetet a... Numren för detta system skrivs i form av ord (koder) för ett annat (internt) talsystem V med alfabetet R... Ett exempel på en sådan SS är det välkända binära decimalsystemet som används för att representera decimaltal i vissa datorer.

Restklasssystemet (RNS) är ett icke-positionellt SS, där talen representeras av resten av divisionen av det valda bassystemet P 1, P 2, ..., Rn och är coprimtal. Operationerna addition, subtraktion och multiplikation på tal i RNS utförs oberoende för varje bas, utan att överföras mellan siffror.

Operationer som division, jämförelse, etc., som kräver information om värdet av hela talet, utförs i RNS enligt mer komplexa algoritmer. Detta är en betydande nackdel med detta nummersystem, som hindrar dess utbredda användning som dator. Men idag i moderna datorer när man arbetar med stora och superstora tal används RNS, eftersom endast RNS-arithmetik låter dig få resultaten av beräkningar i realtid.

I sådana fall är värden nära 2 m (m- datorns binära kapacitet), till exempel: 2 m-1 – 1, 2m, 2m-1 + 1, etc. Sedan mitten av förra seklet har forskare från många länder i världen hanterat problemet med att öka hastigheten på "obekväma" operationer i RNS. Själva RNS har använts i stor utsträckning i datorsystem i flera decennier.

4.5. Presentationsformer och omvandling av information

4.5.1. Information om kodning och avkodning

I alla slags arbete med information talar vi alltid om dess representation i form av vissa symboliska strukturer.

De vanligaste endimensionella representationerna av information, där meddelanden är i form av en sekvens av tecken. Men dess flerdimensionella representation används också i stor utsträckning.

Information presenteras i olika former under uppfattningen av miljön av levande organismer och människor, i processerna för informationsutbyte mellan människor och människor, människor och datorer, datorer och datorer etc. Konvertering av information från en form av representation (teckensystem) ) till en annan kallas kodning .

I en snäv mening förstås kodning som en övergång från den initiala representationen av information, lämplig för mänsklig perception, till en representation som är bekväm för lagring, överföring och bearbetning.

Att gå tillbaka till den ursprungliga vyn kallas avkodning .

Kodningsmedlet är en överensstämmelsetabell för teckensystem, som upprättar en en-till-en-överensstämmelse mellan tecken eller grupper av tecken för två olika teckensystem.

I processen att utbyta information är det ofta nödvändigt att utföra operationer för kodning och avkodning av information. När du matar in ett bokstavstecken i en dator genom att trycka på motsvarande tangent på tangentbordet, kodas tecknet, det vill säga det omvandlas till en datorkod. När ett tecken visas på skärmen på en bildskärm eller skrivare sker den omvända processen - avkodning, när tecknet konverteras från en datorkod till dess grafiska bild.

Låt oss betrakta, som ett exempel på kodning, överensstämmelsen mellan en produkts digitala kod och streckkoder. Sådana koder finns tillgängliga på varje produkt och låter dig identifiera produkten (tillverkarens land och företag, typ av produkt, etc.).

De digitala kodtecknen (siffrorna) motsvarar gruppen streckkodstecken (smala och breda streck, samt storleken på mellanrummen mellan dem). En digital kod är bekväm för en person, och en streckkod är bekväm för automatiserad redovisning, som läses med en smal ljusstråle och bearbetas vidare i datorbokföringssystem.

Vid kodning av information ställs följande mål upp:

· Bekvämlighet med fysisk implementering;

· Lätt att uppfatta;

· Hög hastighet för överföring och bearbetning;

· Effektivitet, det vill säga att minska redundansen i meddelandet;

· Tillförlitlighet, det vill säga skydd mot oavsiktlig förvrängning;

Säkerhet, dvs skydd mot oönskad åtkomst till information.

Dessa mål motsäger ofta varandra, till exempel kräver ekonomi att minska redundansen i meddelandet, och tillförlitlighet uppnås endast på grund av just denna redundans.

För att manipulera informationen som presenteras i datorn är datorns lagringsenhet (eller minne) avsedd.

Information i datorns minne registreras i form av en digital binär kod. I en dator används binär kodning för att representera information, eftersom det var möjligt att skapa tillförlitligt fungerande tekniska anordningar, som inte kan spara och känna igen mer än två olika tillstånd (nummer) med hundra procent tillförlitlighet:

· Elektromagnetiska reläer (stängda / öppna); användes i stor utsträckning i designen av de första datorerna;

· Arean av ytan på den magnetiska informationsbäraren (magnetiserad / avmagnetiserad);

· Arean av laserskivans yta (reflekterar / reflekterar inte);

Utlösare; kan vara stabilt i ett av två tillstånd; flitigt använt i random access minne dator.

All typ av information i en dator är kodad i maskinspråk i form av logiska sekvenser av nollor och ettor (Fig. 4.2).

Typ av information

Binär kod

Numerisk

Text

Grafisk

Ljud

Ris. 4.2. Binär kodning information

Information i en dator representeras i binär kod, vars alfabet består av två siffror (0 och 1).

Binära kodnummer kan ses som två lika sannolika tillstånd (händelser). När du skriver en binär siffra realiseras valet av ett av två möjliga tillstånd (en av två siffror), och därför bär den en mängd information som är lika med 1 bit.

Mängden information som får plats i ett element (0 eller 1), anropad bit , väldigt lite och har ingen semantisk betydelse. Men om du kopplar flera sådana element till en cell, kan du lagra i minnet så mycket information du behöver.

Det är viktigt att varje siffra i maskinens binära kod innehåller information i 1 bit. Således bär två siffror information i 2 bitar, tre siffror - i 3 bitar, etc. Mängden information i bitar är lika med antalet siffror i den binära maskinkoden.

En sekvens av bitar, betraktad av datorns hårdvara som helhet, kallas maskinord .

4.5.2. Enheter för att mäta mängden information

En enhet för informationsmängd anses vara en sådan mängd information som innehåller ett meddelande som halverar osäkerheten. Måttenhet för mängden information bit (bit) får sitt namn från den engelska frasen Binär digitÄr en binär siffra.

Om vi ​​återvänder till experimentet med att kasta ett mynt, så är osäkerheten här bara halverad och därför är mängden mottagen information lika med 1 bit.

1 byte = 23 bitar = 8 bitar.

Inom datavetenskap skiljer sig utbildningssystemet med flera enheter för att mäta mängden information något från de som används inom de flesta vetenskaper. Traditionella metriska system, såsom International System of Units (SI), använder en faktor 10 som multiplar av multiplar. n, var n= 3, 6, 9, etc., vilket motsvarar decimalprefixen Kilo (103), Mega (106), Giga (109), etc.

Datorn arbetar med siffror inte i decimaler utan i binärt system beräkning, därför, i flera enheter för att mäta mängden information, används koefficienten 2 n.

Så, flera byte-måttenheter för mängden information skrivs in enligt följande:

1 KB = 210 byte = 1024 byte;

1 MB = 210 KB = 1024 KB;

1 GB = 210 MB = 1024 MB.

4.5.3. Signerad och osignerad heltalsrepresentation

Vilket heltal som helst kan betraktas som ett reellt tal, men med en bråkdel på noll, det vill säga det kan begränsas till representationen i en dator av reella tal och implementeringen av aritmetiska operationer på dem. Men för effektiv användning minne, ökar hastigheten för att utföra beräkningar och introducerar divisionens funktion helt med en återstod, heltal representeras på specialdesignade sätt.

Införandet av speciella sätt att representera heltal motiveras av det faktum att ganska ofta i problem som löses med hjälp av en dator reduceras många åtgärder till operationer på heltal. Till exempel, i problem av ekonomisk karaktär, är data antalet aktier, anställda, delar, fordon etc. som är heltal i sin betydelse. Heltal används både för att indikera datum och tid och för att numrera olika objekt: matriselement, databasposter, maskinadresser, etc.

För datorrepresentation av heltal används vanligtvis flera olika representationer, som skiljer sig från varandra i antal siffror och närvaro eller frånvaro av en teckensiffra. Osignerad representation kan endast användas för
icke-negativa heltal, negativa tal representeras endast i signerad form.

Med osignerad representation tilldelas alla bitar i cellen till själva numret. När den representeras med ett tecken, tilldelas den högsta (vänster) siffran till tecknet för numret, de återstående siffrorna tilldelas det faktiska numret. Om talet är positivt, så placeras 0 i den signerade biten, om talet är negativt - 1. Uppenbarligen kan celler av samma storlek representera ett större intervall av icke-negativa heltal i representation utan tecken än tecken med tecken. Till exempel, i en byte (8 bitar) kan du skriva positiva tal från 0 till 255,
och med ett tecken - bara upp till 127. Därför, om det är känt i förväg att något numeriskt värde alltid är icke-negativt, är det mer fördelaktigt att betrakta det som osignerat.

De säger att heltal i en dator lagras i formatet med fixpunkt.

Representation av positiva heltal . För att få datorrepresentationen av ett osignerat heltal i k-bitars minnescell, det räcker med att översätta den till det binära talsystemet och komplettera det erhållna resultatet med nollor till vänster för att k utsläpp. Det är klart att det finns en begränsning på antalet som vi kan skriva in k-bitars cell.

Det maximala antalet representativa motsvarar ettor i alla siffror i cellen (ett binärt tal som består av k enheter). För
k-bit representation det kommer att vara lika med 2 k- 1. Minsta antalet representeras av nollor i alla siffror i cellen, det är alltid lika med noll. Följande är det maximala antalet för osignerad representation när olika betydelser k:

Antal utsläpp

Maximalt antal

Med den signerade representationen av heltal uppstår begrepp som framåt, bakåt och komplementära koder.

Representation av ett tal i den välbekanta formen av "teckenvärde", där den mest signifikanta siffran i cellen är tilldelad tecknet, resten k - 1 siffror - under siffrorna i numret, uppringd direktkod .

Till exempel är direktkoderna för binära siffror 110012 och –110012 för en åttabitars cell lika med respektive. Positiva heltal representeras i en dator med en enkel kod. Framkoden för ett negativt heltal skiljer sig från framåtkoden för motsvarande positiva tal i innehållet i teckenbiten. Men istället för direkt kod använder en dator komplementär kod för att representera negativa heltal.

Observera att det maximala positiva antalet som kan skrivas i signerad representation i k siffror är lika med 2 k–1–1, vilket är nästan två gånger mindre än det maximala antalet i den osignerade representationen i samma k utsläpp.

Exempel

Bestäm det maximala positiva talet i åtta- och sextonsiffriga representationer av tal med tecken.

Lösning... Det maximala positiva talet i 8 bitar är 127 (27 - 1), i 16 bitar är det 32 ​​- 1).

Exempel

Nummer 53 = 1101012 i åttabitars representation är.

Samma nummer 53 med 16 siffror kommer att skrivas enligt följande:.

I båda fallen spelar det ingen roll om den signerade eller osignerade representationen används.

Exempel

För 200 = är en 8-bitars representation inte möjlig, eftersom det maximalt tillåtna antalet i en sådan representation är 127, men i en osignerad 8-bitars representation ser det ut som.

Tillbaka ,ytterligare nummerkoder . För att representera negativa heltal i en dator används en extra kod, som gör att du kan ersätta den aritmetiska operationen av subtraktion med en additionsoperation, vilket avsevärt ökar beräkningshastigheten. Innan vi introducerar definitionen av tilläggskod gör vi följande viktiga anmärkning.

V k-bit heltals datoraritmetik 2 k ≡ 0.

Detta kan förklaras av det faktum att den binära notationen av talet 2 k består av en enhet och k nollor och in i en cell från k siffror kan bara passa k siffror, endast i detta fall k nollor. I det här fallet säger de att den betydande enheten har gått bortom bitnätet.

k-bit ytterligare kod negativt tal TÄr ett inträde i k siffror för positivt nummer 2 k– |t | där | t |- modul för negativt tal T,| t |< 2k– 1.

Låt oss ta reda på vad och till vilken ytterligare kod kompletterar. Negativt tals komplementkod TÄr tillägget av modulen för detta tal till 2 (eller till noll in k-bitarithmetik):

(2k– |T|) + |T| = 2k ≡ 0.

Algoritm för att erhålla ytterligare k-bitkod för ett negativt tal:

1. Modulen för ett nummer representeras av direktkod i k binära siffror.

2. Invertera värdena för alla siffror (ersätt alla nollor med ettor och ettor med nollor) k-bit omvänd kod ursprungliga negativa tal.

3. Till den resulterande omvända koden, tolkad som k-bitars icke-negativa binära tal, lägg till en.

Den omvända koden är komplementet av det ursprungliga numret till numret
2k– 1 bestående av k binära sådana. Genom att lägga till en till den inverterade koden kan du därför få dess nödvändiga kompletterande kod.

Exempel

Vi får tilläggskoden för numret -52 för åtta - och sextonsiffriga celler. För en åttabitarscell:

0011 0100 - direktkod för numret | –52 | = 52;

1100 1011 - omvänd kod av numret -52;

1100 1100 är tilläggskoden för numret -52. För en sexton-bitars cell: 0000 0000 0– direktnummerkod | –52 |;
1111 1111 1100 1011 - omvänd kod av numret -52; 1111 1111 1100 1100 - tilläggskod för numret -52.

4.5.4. Representation av symbolisk information i en dator

Symbolisk information lagras och bearbetas i datorns minne i form av en digital kod. Eftersom binära koder används på anordningar för automatisk informationsbehandling, översätts de digitala koder som motsvarar symbolerna till ett binärt system.

Vid omvandling av tecken (tecken) till en digital kod måste en en-till-en-överensstämmelse ske mellan uppsättningarna av tecken och koder.

Teckenkodningstabellen för 8-bitars nummer, som introducerades av US Institute for Standardization och blev den de facto internationella standarden, kallas ASCII (American Standard Code for Information Interchange).

Den grundläggande delen av ASCII-tabellen fixar värdena för koder från 0 till 127 och är allmänt accepterad över hela världen, och den utökade delen hänvisar till tecken med siffror från 128 till 255.

De första 32 koderna i bastabellen, med början från noll, innehåller kontrollkoder som inte motsvarar några språktecken, och följaktligen visas dessa koder inte på skärmen och utskriftsenheterna. Koderna 32 till 127 motsvarar det engelska alfabetet, skiljetecken, aritmetiska operationer och några hjälptecken.

Varje land använder sin egen utökade del av ASCII-tabellen (koderna 128-255, eller utökade ASCII-koder), som innehåller bokstäverna i de nationella alfabeten, pseudografiska symboler och vetenskapliga symboler. I Ryssland, för den utökade delen av tabellen, används kodningarna KOI-8, Windows-1251, ISO etc. Därför kommer texter skapade i en kodning inte att visas korrekt i en annan kodning.

Svårigheter att skapa enhetligt system datakodning för hela världen orsakas av en begränsad uppsättning koder. Uppenbarligen, om du kodar tecken inte med åttabitars binära tal, utan med nummer med stor mängd siffror, då kommer utbudet av möjliga värden för koderna att bli mycket större. Detta system, baserat på 16-bitars teckenkodning, kallas universal - UNICODE. Sexton siffror gör det möjligt att tillhandahålla unika koder för 216 = 65536 olika tecken - detta är tillräckligt för att rymma de flesta av världens språk i en teckentabell.

4.5.5. Flytpunktsrepresentation

Till skillnad från ordningstyper (alla heltal, symboliska, logiska), vars värden alltid jämförs med ett antal heltal och därför representeras i maskinens minne helt exakt, bestämmer värdet av verkliga typer endast antalet med viss ändlig precision, beroende på det interna formatet för det reella talet ...

Att skriva ett flyttal är väldigt effektivt botemedel representationer av mycket stora och mycket små reella tal, förutsatt att de innehåller ett begränsat antal signifikanta siffror, och därför kan inte alla reella tal representeras i minnet. Vanligtvis är antalet signifikanta siffror som används i beräkningar sådant att avrundningsfel är försumbara för de flesta problem.

Vilket verkligt tal som helst x, representerad i radix N, kan skrivas som

x = ± mN ± sid,

var m- mantissa; sid- nummerordning.

Om | m| < 1, то запись числа называется нормализованной слева.

Följande exempel visar hur vilket tal som helst kan representeras i flyttalsform:

a) i decimalnotation

372,95 = 0,37295 103;

25 = 0,025 · 103 = 0,25 · 102;

0,0000015 = 0,15 · 10–5 = 0,015 · 10–4;

b) i det binära talsystemet

11010,1101 = 0,26 = 0,25;

0,011011 = 0,11011 2-1;

0,1 = 0,1 20.

Här bestämmer ordningen hur många positioner och i vilken riktning kommatecken i mantissan ska flyttas.

Numret är uppringt normaliserad till höger om det står ett icke-noll efter kommatecken i mantissan. Till exempel är talen 0,0007610 och 0, presenterade i formen 0,076 · 10-2 respektive 0,011 · 2-2 inte normaliserade till höger, men i formen 0,76 · 10-3 och 0,11 · 2-3 är sådana.

För närvarande distribuerad (beskrivs i IEEE standard 754) också en annan form av notation - normaliserad, där mantissan för ett decimaltal tar värden från 1 (inklusive) till 10
(ej inklusive), och mantissan för ett binärt tal tar värden från 1 (inklusive) till 2 (ej inklusive) (1 ≤ mN). I detta formulär skrivs vilket nummer som helst (utom 0) unikt. Nackdelen är att det är omöjligt att representera 0 i denna form, därför ger representationen av tal i datavetenskap ett speciellt tecken (bit) för talet 0.

Eftersom den mest signifikanta biten (heltalsdelen av talet) av mantissan för ett binärt tal (förutom 0) i normaliserad form är lika med "1", då när man skriver mantissan för ett tal i en dator, kan den mest signifikanta biten utelämnas, vilket används för att minska mängden lagrad information eller (vid samma volym) för att öka noggrannheten i att lagra numret.

0 "style =" border-collapse: collapse; border: none ">

Betydande siffror

Karakteristisk

på egenskapen

X = 27 + p - 1

X = 210 + p - 1

X = 214 + p - 1

Algoritmen för att bilda maskinrepresentationen av ett reellt tal i datorns minne består av följande punkter:

1. Numret representeras i binär kod.

2. Det binära talet är normaliserat. I det här fallet, för nummer större än ett, flyttas flyttal till vänster, vilket definierar en positiv ordning. För siffror mindre än ett, sveper punkten till höger och definierar en negativ ordning.

3. Med hänsyn till typen av det reella numret bestäms karakteristiken enligt tabellen.

4. I fältet tilldelat i minnet, i enlighet med typen av nummer, skrivs mantissan, egenskapen och tecknet för numret. När du gör det bör följande noteras:

· För tal av typen reell, lagras karakteristiken i minnets låga byte, för nummer av typen enkel, dubbel, utökad - i höga byte;

· Tecknet för talet är alltid i den mest signifikanta biten av den mest signifikanta byten;

· Mantissan lagras alltid i direktkod;

· Den första biten i mantissan (alltid 1 för ett normaliserat tal) för siffror som reella, singel, dubbel lagras inte (den är dold). I utökade siffror lagras alla siffror i mantissan i datorns minne.

Formatet för maskindatarepresentationen (till exempel den enskilda typen) är som följer:

ml. byte st. byte

6– Antal minnesbitar

m....m m....m NS m...m s NS...NS

var s- teckenbit;

NS- karakteristisk för numret;

mÄr den normaliserade mantissan.

Nyckelord:

  • ansvarsfrihet
  • osignerad heltalsrepresentation
  • signerad heltalsrepresentation
  • representation av reella tal
  • flyttalsformat

1.2.1. Heltalsrepresentation

Datorminne består av celler, som var och en är fysiska systemet bestående av ett antal homogena element. Dessa element har två stabila tillstånd, varav ett motsvarar noll och det andra till ett. Varje sådant element används för att lagra en av bitarna - siffrorna i ett binärt tal. Det är därför varje cellelement kallas en bit eller urladdning (Fig. 1.2).

Ris. 1.2. Minnescell

För datorrepresentation av heltal används flera olika representationer, som skiljer sig från varandra i antal bitar (8, 16, 32 eller 64 bitar tilldelas vanligtvis för heltal) och närvaron eller frånvaron av en teckensiffra. Osignerad representation kan endast användas för icke-negativa heltal, negativa tal representeras endast i signerad form.

Osignerad data har blivit utbredd inom datoranvändning. Dessa inkluderar objekt som celladresser, alla typer av räknare (till exempel antalet tecken i texten), samt siffror som anger datum och tid, storlekar grafiska bilder i pixlar osv.

Det maximala värdet för ett icke-negativt heltal uppnås när enheter lagras i alla siffror i cellen. För n-bitars representation kommer det att vara lika med 2 n -1. Minsta antalet motsvarar n nollor lagrade i n minnesbitar och är lika med noll.

Följande är de maximala värdena för osignerade n-bitars heltal:

För att få en datorrepresentation av ett heltal utan tecken räcker det att konvertera talet till det binära talsystemet och komplettera resultatet med nollor till vänster till standardbitbredden.

Exempel 1. Nummer 53 10 = 110101 2 i åttasiffrig representation är:

Samma nummer 53 med sexton siffror kommer att skrivas enligt följande:

När den representeras med ett tecken, tilldelas den högsta (vänster) siffran till tecknet för numret, de återstående siffrorna tilldelas själva numret. Om talet är positivt placeras O i teckenbiten, om talet är negativt - 1. Denna representation av tal kallas direktkod. I en dator används direktkoder för att lagra positiva tal i minnesenheter för att utföra operationer på positiva tal.

Webbplatsen för Federal Center for Information and Educational Resources (http://fcior.edu.ru/) innehåller informationsmodulen "Nummer och dess datorkod". Med denna resurs kan du få Ytterligare information om ämnet som studeras.

För att utföra operationer med negativa tal används en extra kod för att ersätta subtraktionsoperationen med addition. Du kan ta reda på algoritmen för att generera ytterligare kod med hjälp av informationsmodulen "Ytterligare kod" som publiceras på webbplatsen för Federal Center for Information and Educational Resources (http://fcior.edu.ru/).

1.2.2. Representation av reella tal

Alla reella tal A kan skrivas i normal (vetenskaplig, exponentiell) form:

А = ± m q p,

    m är mantissan för talet;

    p är ordningen på numret.

Till exempel kan siffran 472 000 000 representeras enligt följande: 47,2 10 7, 472 10 6, 4720 10 7, etc.

Du kanske har stött på den normala formen av att skriva siffror när du utför beräkningar med hjälp av en miniräknare, när svaret mottogs poster av följande form: 4.72E + 8.

Här betecknar "E"-tecknet basen för decimaltalssystemet och läses som "multiplicera med tio i potens."

Från exemplet ovan kan du se att kommatets position i nummerposten kan ändras. Därför kallas representationen i en dator av reella tal i normal form flyttalsrepresentation.

För konsekvens skrivs mantissan vanligtvis som ett vanligt bråk med en siffra som inte är noll efter decimalkomma. I det här fallet kommer talet 472 000 000 att representeras som 0,472 10 9

Ett flyttal kan uppta 32 eller 64 bitar i datorns minne. I det här fallet tilldelas siffrorna för att lagra mantissans tecken, ordningstecknet, ordningen och mantissan.

Representationsintervallet för reella tal bestäms av antalet bitar som allokerats för att lagra ordningen på antalet, och precisionen bestäms av antalet bitar som allokerats för att lagra mantissan.

Det maximala värdet för nummerordningen, som du kan se från exemplet ovan, är 1111111 2 = 127 10, och därför är det maximala värdet för numret:

0,11111111111111111111111 10 1111111

Försök själv räkna ut vad decimalmotsvarigheten till detta värde är.

Ett brett spektrum av flyttal är viktigt för att lösa vetenskapliga och tekniska problem. Samtidigt bör det förstås att algoritmer för att behandla tal i flyttalsformat är mer tidskrävande än algoritmer för att behandla heltal.

Det viktigaste

För datorrepresentation av heltal används flera olika metoder, som skiljer sig från varandra i antalet siffror (8, 16, 32 eller 64) och närvaron eller frånvaron av en teckensiffra.

För att representera ett heltal utan tecken bör det konverteras till ett binärt talsystem och fyllas med nollor från vänster till standardbitbredden.

När den representeras med ett tecken tilldelas den mest signifikanta biten till numrets tecken, de återstående siffrorna tilldelas själva numret. Om talet är positivt, placeras 0 i teckenbiten, om talet är negativt, då 1. Positiva tal lagras i datorn i direktkod, negativ - i komplementär.

Reella tal i datorn lagras i flyttalsformat. I det här fallet skrivs vilket nummer som helst på följande sätt:

А = ± m q p,

    m är mantissan för talet;

    q - basen av talsystemet;

    p är ordningen på numret.

Frågor och uppgifter

  1. Hur representeras positiva och negativa heltal i datorns minne?
  2. Vilket heltal som helst kan betraktas som ett reellt tal, men med en bråkdel på noll. Motivera lämpligheten av att ha speciella metoder för datorrepresentation av heltal.
  3. Representera siffran 63 10 i osignerat 8-bitarsformat.
  4. Hitta decimalekvivalenterna för tal genom deras direkta koder, skrivna i 8-bitars format:
  5. Vilket av talen 443 8, 101010 2, 256 10 kan sparas i 8-bitarsformat?
  6. Skriv ner följande siffror i naturlig form:

      a) 0,3800456 102;

      b) 0,245 10-3;

      c) 1,256900E + 5;

      d) 9,569120E-3.

  7. Skriv ner numret 2010.0102 10 fem olika sätt i normal form.
  8. Skriv följande tal i normal form med den normaliserade mantissan - ett regelbundet bråk med en siffra som inte är noll efter decimalkomma:

    a) 217,934 10;

    c) 0,00101 10.

  9. Rita ett diagram som länkar de nyckelbegrepp som diskuteras i detta stycke.

§ 1.2. Representerar siffror i en dator

Representation av siffror i datorn. Frågor och uppgifter

1. Läs presentationsmaterialet för stycket i elektronisk ansökan till läroboken. Använd dessa resurser för att hjälpa dig svara på frågor och slutföra uppgifter.

2. Hur representeras positiva och negativa heltal i datorns minne?

3. Vilket heltal som helst kan betraktas som reellt, men med noll bråkdel. Motivera lämpligheten av att ha speciella metoder för datorrepresentation av heltal.

4. Representera talet 63 10 i osignerat 8-bitarsformat.

5. Hitta decimalekvivalenterna för tal genom deras direkta koder, skrivna i 8-bitars format:

    a) 01001100;
    b) 00010101.

6. Vilka nummer 443 8, 101010 2, 256 10 kan sparas i 8-bitars format?

7. Skriv ner följande siffror i naturlig form:

    a) 0,3800456 102;
    b) 0,245 10-3;
    a) 1,256900E + 5;
    a) 9,569120E-3.

8. Skriv ner talet 2010.0102 10 på fem olika sätt i exponentiell notation.

9. Skriv ner följande tal i exponentiell form med den normaliserade mantissan - ett regelbundet bråk med en siffra som inte är noll efter decimalkomma:

    a) 217,934 10;
    b) 75321 10;
    c) 0,00101 10.

10. Rita ett diagram som länkar samman nyckelbegreppen som diskuteras i detta stycke.

Svar: Representerar siffror i en dator

    9.a) 0,217934 10 3; b) 0,75321 105; c) 0,101 10-2.

Det finns två huvudformat för att representera tal i datorns minne, ett av dem används för att koda heltal (representerar ett tal i fixpunktsformat), det andra används för att specificera en delmängd av reella tal (representerar ett tal i flyttal). formatera). Låt oss överväga vart och ett av formaten mer i detalj.

1.1. Heltalsrepresentation

Vilket heltal som helst kan betraktas som ett reellt tal, men med en bråkdel på noll, det vill säga kan det begränsas till representationen av reella tal i en dator och implementeringen av aritmetiska operationer på dem, dock för att effektivt använda datorminnet , öka hastigheten på beräkningar och införa en heltalsdivision operation heltal representeras på specialdesignade sätt.

För datorrepresentation av heltal används vanligtvis flera olika metoder, som skiljer sig från varandra i antalet binära siffror och närvaron eller frånvaron av en teckenbit.

Heltal i en dator lagras i minnet i ett format med fixpunkt... I detta fall motsvarar varje bit i minnescellen alltid samma bit, och "komma" "är" till höger efter den minst signifikanta biten, det vill säga utanför bitrutnätet.

1.1.1. Osignerade heltal

Överväg att koda heltal utan tecken med hjälp av exemplet med data av typen byte i språket Grundläggande och osignerad röding i språket MED++ upptar en byte i minnet.

För att få en dator (intern) representation av ett en-byte heltal icke-negativt tal, räcker det att översätta det till ett binärt talsystem och det resulterande resultatet, som kallas direktkoden för talet, kompletteras med nollor till vänster till åtta bitar.

Minsta antalet representeras av nollor i alla siffror och är lika med noll. Det maximala representerbara antalet motsvarar ettor i alla siffror i cellen (ett binärt tal som består av åtta ettor), det är lika med 255 (). Exempel på kodning av en-byte heltal utan tecken visas i tabell. 1.

En-byte icke-negativa heltal kan till exempel användas för att organisera olika räknare, registrera celladresser, datum och tid och storlek på grafiska bilder i pixlar.

För att förbättra läsbarheten av den interna representationen av ett tal skrivs den i ett hexadecimalt talsystem.

bord 1

Exempel på kodning av heltal utan tecken

1.1.2. Signerade heltal

Överväg att koda tecken med heltal med hjälp av datatypen som exempel heltal i språket Grundläggande och int i språket MED++, upptar två byte (16 bitar) i minnet.

Var och en av de 16 bitarna har ett specifikt syfte, formen för att representera ett signerat heltal visas i fig. 1. Den mest signifikanta biten i cellen tilldelas under tecknet: 0 - för positiva tal, 1 - för negativa.

För att representera tecken med heltal i en dator används en extra kod, som gör att du kan ersätta den aritmetiska operationen av subtraktion med en additionsoperation, vilket avsevärt ökar beräkningshastigheten.

För att förstå vad kompletterande kod är, överväg framåt- och bakåtkoder.

Anmärkning 1... För positiva tal matchar alla tre koder den binära representationen av talet med sexton binära siffror, med nollor skrivna till de tomma siffrorna.

Ris. 1. Signerad heltalsform

Tänka algoritm erhållande av en ytterligare sexton-bitars binär kod med ett negativt tal.

1) Skriv ner direktkoden för ett negativt tal i 16 binära siffror. För att göra detta måste modulen för ett negativt heltal omvandlas till ett binärt talsystem och resultatet som erhålls till vänster måste kompletteras med nollor till 16 bitar.

2) Skriv den omvända koden för ett negativt tal med 16 binära siffror. För att göra detta, invertera värdena för alla siffror i direktkoden (ersätt alla nollor med ettor och alla ettor med nollor).

3) Skriv ner komplementkoden för ett negativt tal i 16 binära siffror. För att göra detta, lägg till en till den omvända koden, betraktad som ett sexton-bitars icke-negativt binärt tal.

Anmärkning 2... Den inversa koden för ett negativt tal är modulen för detta tals komplement till talet
, och den kompletterande koden är upp till antalet
.

Exempel på representation av två-byte signerade heltal visas i tabellen. 2.

Det minsta negativa talet som kan representeras med två byte är –32768.

Det maximala representativa positiva talet motsvarar ettor i alla siffror i cellen (ett binärt tal som består av noll (i teckenbiten) och femton ettor), det är lika med 32767 (
).

Tabell 2

Exempel på att representera två-byte-signerade heltal


REPRESENTATION AV INTEGRALA TAL Eftersom vilket heltal som helst kan representeras som ett reellt tal, men med en bråkdel på noll, skulle det vara möjligt att begränsa oss till representationen av reella tal i en dator och implementeringen av aritmetiska operationer på dem. Men för effektiv användning av minnet, ökande hastigheten för att utföra beräkningar, införa en heltalsdelningsoperation med en rest (i pascal DIV och MOD) Heltal representeras på specialdesignade sätt.


Införandet av speciella sätt att representera heltal motiveras av det faktum att ofta i problem lösta med en dator reduceras många åtgärder till operationer på heltal. Till exempel vid problem av ekonomisk karaktär, där uppgifterna är antalet aktier, anställda, delar, fordon m.m. för att ange datum och tid; för numrering av olika objekt: arrayelement, databasposter, maskinadresser, etc.




OSIGNERAD INTEGRALREPRESENTATION Alla cellsiffror tilldelas själva numret bitrutnätssiffror Exempel: = Omfång av representerade tal: A min = = 0 10 A max = = 2 8 -1 = Område I pascal - skriv BYTE


2,16-bitars rutnätssiffror Område av representerade siffror: A min = = 0 10 A max = = = Område I pascal - typ WORD bitrutnät A min = 0 A max = = bitrutnät A min = 0 A max = =


INTEGRALTAL PRESENTATION MED TECKN Den mest signifikanta siffran i siffrornas rutnät tilldelas tecknet: 0 - för positivt tal 1 - för negativa tal 1. 8-siffriga rutnätssiffror Exempel: = Tecken på ett positivt tal Exempel: = Tecken på en negativt tal


Intervallet av representerade siffror: A max = = 2 7 -1 = A min = I pascal - skriv SHORTINT bitrutnät A max = = = A min = I pascal - skriv HELTAL




Direkt maskinkod Representation av ett tal i den vanliga "teckenvärde"-formen, när den första biten i ett n-bitars ord är signerad, och de återstående n-1 bitarna representerar de digitala siffrorna i ett tal i det binära talsystemet, kallas direktkoden för ett binärt tal. Den direkta koden för ett heltal sammanfaller helt med registreringen av själva numret i bitrutnätet på en dator. Den direkta koden för ett heltal sammanfaller helt med registreringen av själva numret i bitrutnätet på en dator. Framkoden för ett negativt heltal skiljer sig från framåtkoden för motsvarande positiva tal i innehållet i teckensiffran. Den direkta koden för siffrorna X = och Y = i ett åttabitars rutnät ser ut så här:


I systemet med direkta koder finns det två olika representationer av noll: - positiv 0; - negativ 0. Båda representationerna är helt lika. Direktkod används för att lagra positiva och negativa tal i minnesenheter och för att representera positiva tal när man utför operationer i aritmetiska enheter.


Kompletterande inversa koder Komplementära och inversa koder För att förenkla konstruktionen av aritmetiska enheter i datorer reduceras alla aritmetiska operationer som regel till addition (subtraktionsoperation) eller till en serie additioner och skift (multiplikation och division). Att ersätta operationen av subtraktion (algebraisk addition) med aritmetisk addition i en dator utförs med inversa och komplementära koder. Positives komplementkod Det positiva numrets komplementkod är densamma som detta nummer.


Förklaring av essensen av specialkoder ... ... - + Låt oss överväga ett exempel på en omvänd räknare för 3-siffriga decimaltal: 999 + 1 = 1000 - överflöde av bitrutnätet! = -enligt räknaren 999 - kod -1! 000 a + (-a) = (-005) = = - tilläggskod för talet - 2 = 5 + (-2) = = - 5 = 7 + (-5) = = Om vi ​​anser att bräddningsenheten är förlorat, då får vi korrekta resultat För att eliminera tvetydighet i ringen kommer vi att betrakta hälften av tillstånden (0-499) som koder för noll och positiva tal, och den återstående hälften () som koder för negativa tal.


Komplementär kod för ett negativt tal Komplementkoden för ett negativt tal är lika med komplementet av dess värde till det tal som uppstår när bitnätet svämmar över qn, där q är basen i talsystemet, n är antalet bitar i bitnätet. qn - kallas en konstant för bildandet av en extra kod Operation C = A - B, där A och B är positiva heltal i alla talsystem, kan representeras som: C = A - B = A + (-B) = A + (-B ) + qn - qn = A + (qn - B) - qn А - den första termens komplementära koden qn - В - tilläggskoden för talet –В (andra termen) qn - konstant eliminerar överflödesenheten


Exempel. A = 95 10, B = 43 10, n = 2. Hitta C = AB. [-B dk] = 100 - 43 = 57 C = 95 + [-B dk] - 100 = - 100 = 152 - 100 = 52 Enheten i den mest signifikanta siffran i summan kan enkelt strykas över. Det är nödvändigt att hitta ett sätt att erhålla komplementet av ett godtyckligt tal X till qn utan att använda subtraktion: C = A - B = A + (-B) = A + (-B) + qn - qn = A + (qn) -1- B) - qn + 1 Uttryck qn - 1 - B bestämmer talet B som erhålls genom att ersätta varje siffra i talet B med dess komplement till siffran q –1. Så, = = 999. Den omvända koden B kallas den omvända koden för talet B; qn -1 är konstanten för bildandet av den omvända koden


Det är lätt att få en tilläggskod från den omvända koden: B + B = qn -1 qn - B = B + 1 Tilläggskoden för den omvända koden Tilläggskoden erhålls genom att lägga till en till den minst signifikanta biten av den omvända koden . Därför kan komplementet av binära tal hittas förbi subtraktionsoperationen. I den omvända koden, som i den framåt, finns en negativ och positiv nolla. Endast in's two's komplementkod har en enda representation. För en given längd av bitrutnätet representerar komplementkoden ytterligare ett negativt tal än positiva. Vi går med på att beteckna de direkta, omvända och tilläggskoderna för numret A till [A pk], [A ok], [A dk].


Exempel. Hitta framåt-, bakåt- och tilläggskoder för siffrorna A = 34 och B = [A pk] =, [A ok] =, [A dk] = [V pk] =, [V ok] =, [V dk] = Algoritm för att erhålla komplementär kod för ett negativt tal. 1. Modulen för ett tal representeras av direktkod i k binära siffror. 2. Invertera värdena för alla bitar: ersätt alla nollor med ettor och ettor med nollor (sålunda erhålls den k-bitars inversa koden för det ursprungliga numret); 3. Till den mottagna omvända koden, tolkad som ett k-bitars icke-negativt binärt tal, lägg till ett.


Exempel. 1. Givet ett negativt heltal decimaltal M = -20. Representera ett maskinkodnummer på ett 16-bitars rutnät i binära och hexadecimala notationer. M = -20 = 2 = 2 = 2 = 16 = FFEC


2. Ett heltal ges i form av en hexadecimal binär maskinkod. Bestäm decimalvärdet för detta nummer: K a = FFD4 Den första siffran i F, därför är numret negativt och lagras i datorn i form av ytterligare maskinkod. FFD4 16 = [dk] [ok] - omvänd kod för numret PC = [pc] - framåt binär kod siffror Sedan decimaltal a = = - (32 + 8 + 4) = -44 - decimaltal


Metod 2: genom det hexadecimala talsystemet Ka = FFD4


Åtgärder på maskinkoder för heltal Givet: decimaltal A = 34 och B = 30 Hitta: A + B, A - B, B - A i binära maskinkoder i ett 8-bitars rutnät. = [A ok] = [A dk] = [-A st] = [-A ok] = [-A dk] = [-B st] = [-V ok] = [-V dk] = [V st ] = [V ok] = [V dk] =


[A + B] DK = = A + B = 64 [A - B] DK = = A - B = 4 [B - A] DK = =


Åtgärder på maskinkoder för tal med en fast punkt (i hexadecimal notation) Givet: decimaltal A = 34 och B = 30 Hitta: A + B, A - B, B - A i hexadecimala maskinkoder i ett 16-bitars rutnät . .. 1) A = 34 = 22 16 V = 30 = 1E 16 st = PC = 001E 16 KA + KB = E = A + B = = 64 2) PC = 801E 16 DC = E 16 = FFE2 16 KA + KB = FFE2 = A - B = = 4




I moderna datorer lagrar maskinformen för ett nummer inte själva ordern, utan dess partiska värde - en egenskap hos numret. Detta görs för att inte bevara ordertecknet och därför för att underlätta operationer över orderna; öka intervallet för representerade tal ... Tecken på mantissans karaktäristiska mantiss Den normaliserade mantissan har alltid en heltalsbit 0 och därför lagras inte denna nolla i datorns minne, utan endast underförstådd. Denna användbara tekniska lösning låter dig öka antalet siffror och därmed noggrannheten i beräkningarna.


Exempel Representera reella tal som maskinkoder för flyttalsnummer i ett 32-bitars rutnät vid 16 s/s: a) A = 32008.5 b) B =, 5 c) C = 15 d) D = Låt oss hitta den normaliserade mantissan och egenskaperna av dessa siffror: a ) A = 32008.5 = 7D08.8 16 = 0.7D m A = 0.7D088p xA = 4 + 40 = 44 16 = Tecken- 0 Karakteristisk Bråkdel av mantissan Normaliserad mantiss Karakteristisk KA => = = 4 0">


B) B =, 5 = -7D08.8 16 = - 0.7D m B = -0.7D088p xB = 4 + 40 = 44 16 = Tecken - 1 Karakteristisk Bråkdel av mantissan Normaliserad mantiss Karakteristisk K B = = = C3FA


0 14 16 c) D = - = - 0,9 16 m B = 0,9 16 p xB = 40 + 0 = 40 "title =" (! LANG: c) C = 15 = F, E 16 mc = 0 , FE 16 p xA = 40 + 1 = 41 16 Tecken- 0 Karakteristik- 1000001 Bråkdel- 1111 1110 0000 0000 0000 0000 mantissa KC = 0,1000001.1111 1110 00 0 =0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,9 16 m B = 0,9 16 p xB = 40 + 0 = 40" class="link_thumb"> 28 !} c) C = 15 = F, E 16 mc = 0, FE 16 p xA = 40 + 1 = 41 16 Tecken - 0 Karakteristisk Bråkdel av mantissan KC = = = 41FE> c) D = - = - 0,9 16 m B = 0,9 16 p xB = 40 + 0 = 40 16 Tecken- 1 Karakteristisk Bråkdel av mantissan KD = = C 0 14 16 c) D = - = - 0,9 16 m B = 0,9 16 p xB = 40 + 0 = 40 "> 0 14 16 c) D = - = - 0,9 16 m B = 0,9 16 p xB = 40 + 0 = 40 16 Tecken- 1 Karakteristik- 1000000 Bråkdel- 1001 0000 0000 0000 1 K000 0000 1 K000 0000 0,000 1 K 0000 0000 0000 0000 0000 2 = C0900000 16 0 14 16 c) D = - = - 0,9 16 m B = 0,9 16 p xB = 40 + 0 = 40 "title =" (! LANG: c) C, E 16 mc = 0, FE 16 p xA = 40 + 1 = 41 16 Tecken- 0 Karakteristisk- 1000001 Bråkdel- 1111 1110 0000 0000 0000 0000 mantissa KC = 0,100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 16 c) D = - = - 0,9 16 m B = 0,9 16 p xB = 40 + 0 = 40"> title="c) C = 15 = F, E 16 mc = 0, FE 16 p xA = 40 + 1 = 41 16 Tecken- 0 Karakteristik- 1000001 Bråkdel- 1111 1110 0000 0000 0000 0000 0000 1001 001 001 001 001 001 001 001 001 001 0000 2 = = 41FE0000 16> 0 14 16 c) D = - = - 0,9 16 m B = 0,9 16 p xB = 40 + 0 = 40">!}


Åtgärder på tal representerade i exponentiell form 1. Tal i exponentiell form lagras i minnet i direkt kod med normaliserade mantissar. 2. Tillägget av koder utförs genom att lägga till mantissan endast för samma ordningsföljder (karakteristika) av termerna. Den högsta ordningen väljs för den vanliga. 3. Algoritmer för driften av algebraisk addition efter utjämning av egenskaperna beror på termernas tecken. 4. Resultat i rak kod normaliseras.


Exempel Utför additionsoperationen av maskinkoder för nummer A och B med flyttal i ett 32-bitars rutnät. Som ett svar, skriv ner resultatkoden (i 2:a och 16:e s/s) och motsvarande decimaltal 1) KA = 43.F34000K B = C1.A13000 a) m A = 00.F34m B = 00.A13 P Ax = 43P Bx = 41 => P = 2 => m B = 00.00A13 - PC _ A13 FF.FF5ED b) m A + m B = 00.F34 FF.FF5ED 100.F29ED> 0 => m A + B = 00.F29ED P = 2 => m B = 00.00A13 - PC _100.00000 00.00A13 FF.FF5ED b) m A + m B = 00.F34 FF.FF5ED 100.F29ED> 0 => m A + B = 00.F29ED " >


P A + B = 3A + B = 0.F29ED = F29, ED 16 = / 16 + 13/256 = / 256 K A + B = = = 43.F29ED0