Wat is coderen en decoderen in een notendop. Coderen en decoderen van digitale informatie. Voorbeelden van het coderen en decoderen van nummers

Coderen en decoderen van informatie

Voor de juiste taak ontvang je 1 punt... Bij benadering 2 minuten.

Om taak 5 in de informatica te voltooien, moet je het volgende weten:

codering is de vertaling van informatie van de ene vorm van presentatie naar de andere.

decoderen is het omgekeerde van het coderingsproces.

Coderen gebeurt uniform en ongelijkmatig;

  • bij uniforme codering worden alle symbolen gecodeerd met codes van gelijke lengte; Bijvoorbeeld: ASCII of Unicode.
  • met niet-uniforme codering kunnen verschillende symbolen worden gecodeerd met codes van verschillende lengtes, wat decodering bemoeilijkt vanwege het optreden van ambiguïteit van de code. Bijvoorbeeld: Het teken A wordt gecodeerd met het cijfer 0, B - met de reeks 01, en B - met de reeks 1. Zo kan bijvoorbeeld het bericht "011" worden gedecodeerd als ABB of BV. Als de code dubbelzinnig is, kan de informatie op verschillende manieren worden gedecodeerd.

Voor eenduidige decodering moet de code voldoen aan: de Fano-conditie: N en welk codewoord niet het begin kan zijn van een ander codewoord.

Trainingstaken

    Het communicatiekanaal verzendt gecodeerde berichten die slechts tien letters bevatten: A, B, E, I, K, L, P, C, T, U. Voor de verzending wordt een ongelijke binaire code gebruikt. Codewoorden worden gebruikt voor negen letters.

    Brief codewoord Brief codewoord
    EEN 00 L 1101
    B R 1010
    E 010 MET 1110
    EN 011 t 1011
    TOT 1111 Hebben 100

    Specificeer het kortste codewoord voor de letter B, waarbij de code zal voldoen aan de Fano-voorwaarde. Als er meerdere van dergelijke codes zijn, geeft u de code aan met het kleinste numerieke waarde.
    Opmerking.


    Oplossing
  1. Het bericht bevat 4 verschillende letters. Tijdens de verzending is een ongelijke binaire prefixcode gebruikt. De codes van twee letters zijn bekend: 101, 01. De codes van de andere twee letters hebben dezelfde lengte. Wat is de minimale totale lengte van alle 4 codewoorden?


    Oplossing
  2. Het communicatiekanaal zendt berichten uit die slechts vijf letters bevatten: D, O, S, K, A; een binaire code wordt gebruikt voor verzending, waardoor eenduidige decodering mogelijk is. Voor de letters D, O, C worden de volgende codewoorden gebruikt: D: 1, O: 01, C: 0001. Geef de kortste som van de lengtes van de codewoorden voor de letters K, A aan waarop de code zal ondubbelzinnige decodering mogelijk maken.


    Oplossing
  3. Het bericht bevat 9 verschillende letters. Tijdens de verzending werd een ongelijke binaire code gebruikt, waardoor ondubbelzinnige decodering mogelijk was. De codes van drie letters zijn bekend: 100, 001.01. Wat is de minimale totale lengte van alle 9 codewoorden?


    Oplossing
  4. Het communicatiekanaal verzendt gecodeerde berichten die slechts tien letters bevatten: A, B, C, D, E, F, Z, E, I, L. Voor de verzending wordt een ongelijke binaire code gebruikt. Codewoorden worden gebruikt voor zeven letters.

    Specificeer het kortste codewoord voor de letter L, waarbij de code zal voldoen aan de Fano-voorwaarde. Als er meerdere van dergelijke codes zijn, geeft u de code aan met het kleinste numerieke waarde.
    Opmerking. De Fano-conditie betekent dat geen enkel codewoord het begin is van een ander codewoord. Dit maakt het mogelijk om de gecodeerde berichten eenduidig ​​te ontcijferen.


    Oplossing
  5. Het communicatiekanaal verzendt gecodeerde berichten die slechts tien letters bevatten: A, B, C, D, E, F, Z, E, I, L. Voor de verzending wordt een ongelijke binaire code gebruikt. Codewoorden worden gebruikt voor acht letters.

    Specificeer het kortste codewoord voor de letter Z, waarbij de code zal voldoen aan de Fano-voorwaarde. Als er meerdere van dergelijke codes zijn, geeft u de code aan met het kleinste numerieke waarde.
    Opmerking. De Fano-conditie betekent dat geen enkel codewoord het begin is van een ander codewoord. Dit maakt het mogelijk om de gecodeerde berichten eenduidig ​​te ontcijferen.


    Oplossing
  6. Het communicatiekanaal verzendt gecodeerde berichten die slechts tien letters bevatten: A, B, C, D, E, F, Z, E, I, L. Voor de verzending wordt een ongelijke binaire code gebruikt. Codewoorden worden gebruikt voor vijf letters.

    Specificeer het kortste codewoord voor de letter G, waarbij de code zal voldoen aan de Fano-voorwaarde. Als er meerdere van dergelijke codes zijn, geeft u de code aan met het kleinste numerieke waarde.
    Opmerking. De Fano-conditie betekent dat geen enkel codewoord het begin is van een ander codewoord. Dit maakt het mogelijk om de gecodeerde berichten eenduidig ​​te ontcijferen.

Informatie en de codering ervan

Verschillende benaderingen voor de definitie van het begrip "informatie". Soorten informatieprocessen. Informatieaspect in menselijke activiteit

Informatie(lat. informatie- uitleg, presentatie, verzameling informatie) is een basisconcept in de informatica, dat geen strikte definitie kan geven, maar alleen kan worden uitgelegd:

  • informatie is nieuwe feiten, nieuwe kennis;
  • informatie is informatie over objecten en fenomenen van de omgeving die het niveau van menselijk bewustzijn verhogen;
  • informatie is informatie over objecten en fenomenen van de omgeving die de mate van onzekerheid van kennis over deze objecten of fenomenen verminderen bij het nemen van bepaalde beslissingen.

Het concept van "informatie" is een algemeen wetenschappelijk concept, dat wil zeggen dat het in verschillende wetenschappen wordt gebruikt: natuurkunde, biologie, cybernetica, informatica, enz. Bovendien wordt dit concept in elke wetenschap geassocieerd met verschillende conceptsystemen. Dus in de natuurkunde wordt informatie beschouwd als anti-entropie (een maat voor de volgorde en complexiteit van het systeem). In de biologie wordt het concept "informatie" geassocieerd met het doelmatige gedrag van levende organismen, evenals met studies naar de mechanismen van erfelijkheid. In de cybernetica wordt het begrip "informatie" geassocieerd met controleprocessen in complexe systemen.

De belangrijkste maatschappelijk belangrijke eigenschappen van informatie zijn:

  • nut;
  • toegankelijkheid (begrijpelijkheid);
  • relevantie;
  • volledigheid;
  • betrouwbaarheid;
  • geschiktheid.

In de menselijke samenleving zijn informatieprocessen voortdurend gaande: mensen nemen informatie uit de wereld om hen heen met behulp van hun zintuigen waar, begrijpen deze en nemen bepaalde beslissingen die, belichaamd in echte acties, de wereld om hen heen beïnvloeden.

Informatieproces Is het proces van het verzamelen (ontvangen), verzenden (uitwisselen), opslaan, verwerken (transformeren) van informatie.

Verzameling van informatie- dit is het proces van het zoeken en selecteren van de benodigde berichten uit verschillende bronnen (werken met speciale literatuur, naslagwerken; experimenten uitvoeren; observaties; peiling, bevraging; zoeken in informatie en referentienetwerken en -systemen, enz.).

Overdracht van informatie Is het proces van het verplaatsen van berichten van bron naar bestemming via een transmissiekanaal. Informatie wordt verzonden in de vorm van signalen - geluid, licht, ultrasoon, elektrisch, tekst, grafisch, enz. Transmissiekanalen kunnen luchtruim zijn, elektrische en glasvezelkabels, individuen, menselijke zenuwcellen, enz.

Gegevens opslag Is het proces van het vastleggen van berichten op een tastbaar medium. Nu worden papier, hout, stof, metaal en andere oppervlakken, film- en fotografische films, magnetische banden, magnetische en laserschijven, flashkaarten, enz. gebruikt om informatie op te slaan.

Gegevensverwerking Is het proces van het verkrijgen van nieuwe berichten van de bestaande. Informatieverwerking is een van de belangrijkste manieren om de hoeveelheid ervan te vergroten. Als resultaat van de verwerking kunnen berichten van het ene type worden verkregen uit berichten van andere typen.

Bescherming van informatie Is het proces van het creëren van voorwaarden die onopzettelijk verlies, beschadiging, wijziging van informatie of ongeautoriseerde toegang ertoe voorkomen. De methoden om informatie te beschermen, zijn het maken van back-ups, het opslaan in een beveiligde ruimte, gebruikers voorzien van de juiste toegangsrechten tot informatie, het versleutelen van berichten, enz.

Taal als een manier om informatie te presenteren en over te dragen

Afhankelijk van manier van perceptie tekens zijn onderverdeeld in:

  • visueel (letters en cijfers, wiskundige tekens, muzieknoten, verkeersborden, enz.);
  • auditief (mondelinge spraak, oproepen, sirenes, pieptonen, enz.);
  • tastbaar (braille voor blinden, aanraakgebaren, enz.);
  • olfactorisch;
  • smaakstof.

Voor langdurige opslag worden de karakters op informatiedragers vastgelegd.

Om informatie over te brengen, worden tekens in het formulier gebruikt signalen(verkeerslichten, geluid van de schoolbel, enz.).

Door de relatie tussen vorm en betekenis tekens zijn onderverdeeld in:

  • iconisch- hun vorm is vergelijkbaar met het weergegeven object (bijvoorbeeld het pictogram van de map "Mijn computer" op het "bureaublad" van de computer);
  • symbolen- de relatie tussen hun vorm en betekenis wordt vastgesteld door algemeen aanvaarde overeenstemming (bijvoorbeeld letters, wiskundige symbolen ∫, ≤, ⊆, ∞; symbolen van chemische elementen).

Sign-systemen worden gebruikt om informatie weer te geven, die worden genoemd talen... De basis van elke taal is: alfabet- een set symbolen waaruit een bericht wordt gevormd, en een set regels voor het uitvoeren van bewerkingen op symbolen.

Talen zijn onderverdeeld in:

  • natuurlijk(gesproken) - Russisch, Engels, Duits, enz.;
  • formeel- gevonden in speciale gebieden van menselijke activiteit (bijvoorbeeld de taal van algebra, programmeertalen, elektrische circuits, enz.)

Nummerstelsels kunnen ook worden gezien als formele talen. Het decimale getalsysteem is dus een taal, waarvan het alfabet bestaat uit tien cijfers 0..9, het binaire getalsysteem is een taal, waarvan het alfabet uit twee cijfers bestaat - 0 en 1.

Methoden voor het meten van de hoeveelheid informatie: probabilistisch en alfabetisch

De eenheid voor het meten van de hoeveelheid informatie is beetje. 1 bit- Dit is de hoeveelheid informatie in het bericht, die de onzekerheid van kennis over iets halveert.

De relatie tussen het aantal mogelijke gebeurtenissen N en de hoeveelheid informatie I wordt bepaald volgens de Hartley-formule:

Stel bijvoorbeeld dat de bal zich in een van de vier dozen bevindt. Er zijn dus vier even waarschijnlijke gebeurtenissen (N = 4). Dan door de Hartley-formule 4 = 2 I. Vandaar, I = 2. Dat wil zeggen, het bericht over in welke doos de bal zich bevindt, bevat 2 bits informatie.

Alfabetische benadering

Met een alfabetische benadering van het bepalen van de hoeveelheid informatie, worden ze afgeleid van de inhoud (betekenis) van informatie en beschouwen deze als een opeenvolging van tekens van een bepaald tekensysteem. De tekenset van de taal (alfabet) kan worden gezien als verschillende mogelijke gebeurtenissen. Als we dan aannemen dat het verschijnen van symbolen in een bericht even waarschijnlijk is, met behulp van de Hartley-formule, kunt u berekenen hoeveel informatie elk symbool bevat:

In het Russisch zijn er bijvoorbeeld 32 letters (de letter ё wordt meestal niet gebruikt), dat wil zeggen dat het aantal gebeurtenissen 32 zal zijn. Dan is het informatievolume van één teken gelijk aan:

I = log 2 32 = 5 bits.

Als N geen geheel getal van 2 is, dan is log 2 N geen geheel getal en moet I naar boven worden afgerond. Bij het oplossen van problemen kan ik in dit geval worden gevonden als log 2 N ", waarbij N de dichtstbijzijnde macht van twee tot N is, zodat N> N.

Er zijn bijvoorbeeld 26 letters in het Engels. Het informatievolume van één symbool is als volgt te vinden:

N = 26; N "= 32; I = log 2 N" = log 2 (2 5) = 5 bits.

Als het aantal tekens in het alfabet N is en het aantal tekens in het berichtrecord M, dan wordt het informatievolume van dit bericht berekend met de formule:

ik = M log 2 N.

Voorbeelden van probleemoplossing

Voorbeeld 1. Het lichtbord bestaat uit gloeilampen, die elk in twee standen ("aan" of "uit") kunnen staan. Wat is het kleinste aantal lampjes op het scorebord om 50 verschillende signalen uit te zenden?

Oplossing. Met behulp van n lampen, die elk in een van twee toestanden kunnen zijn, kunnen 2 n signalen worden gecodeerd. 2 5< 50 < 2 6 , поэтому пяти лампочек недостаточно, а шести хватит.

Antwoord geven: 6.

Voorbeeld 2. Het weerstation houdt de luchtvochtigheid in de gaten. Het resultaat van één meting is een geheel getal van 0 tot 100, dat wordt geschreven met het kleinst mogelijke aantal bits. Het station deed 80 metingen. Bepaal het informatievolume van de waarnemingsresultaten.

Oplossing. In dit geval is het alfabet de verzameling gehele getallen van 0 tot 100. Er zijn in totaal 101 van dergelijke waarden. Daarom is het informatievolume van de resultaten van één meting I = log 2 101. Deze waarde zal geen geheel getal zijn . Laten we het getal 101 vervangen door de dichtstbijzijnde macht van twee, groter dan 101. Dit getal is 128 = 27. We accepteren voor één meting I = log 2 128 = 7 bits. Voor 80 metingen is het totale informatievolume:

80 7 = 560 bits = 70 bytes.

Antwoord geven: 70 bytes.

probabilistische benadering

De probabilistische benadering voor het meten van de hoeveelheid informatie wordt gebruikt wanneer mogelijke gebeurtenissen verschillende waarschijnlijkheden van realisatie hebben. In dit geval wordt de hoeveelheid informatie bepaald volgens de formule van Shannon:

$ I = -∑↙ (i = 1) ↖ (N) p_ilog_2p_i $,

waarbij $ I $ de hoeveelheid informatie is;

$ N $ - het aantal mogelijke gebeurtenissen;

$ p_i $ - kans op de $ i $ -de gebeurtenis.

Laat bij het werpen van een asymmetrische tetraëdrische piramide bijvoorbeeld de kansen op individuele gebeurtenissen gelijk zijn:

$ p_1 = (1) / (2), p_2 = (1) / (4), p_3 = (1) / (8), p_4 = (1) / (8) $.

Vervolgens kan de hoeveelheid informatie die wordt verkregen na de implementatie van een van hen worden berekend met behulp van de Shannon-formule:

$ I = - ((1) / (2) log_2 (1) / (2) + (1) / (4) log_2 (1) / (4) + (1) / (8) log_2 (1) / ( 8) + (1) / (8) log_2 (1) / (8)) = (14) / (8) $ bits $ = 1,75 $ bits.

Eenheden voor het meten van de hoeveelheid informatie

De kleinste eenheid van informatie is: beetje(eng. binair cijfer (bit) is een binaire informatie-eenheid).

Beetje Is de hoeveelheid informatie die nodig is om één van twee even waarschijnlijke gebeurtenissen ondubbelzinnig vast te stellen. Een persoon krijgt bijvoorbeeld één stukje informatie als hij erachter komt of de trein die hij nodig heeft te laat is of niet, het 's nachts heeft gevroren of niet, student Ivanov aanwezig is bij de lezing of niet, enz.

In de informatica is het gebruikelijk om reeksen met een lengte van 8 bits te beschouwen. Deze reeks heet byte.

Afgeleide eenheden voor het meten van de hoeveelheid informatie:

1 byte = 8 bits

1 kilobyte (KB) = 1024 bytes = 2 10 bytes

1 megabyte (MB) = 1024 kilobytes = 2 20 bytes

1 gigabyte (GB) = 1024 megabytes = 2 30 bytes

1 terabyte (TB) = 1.024 gigabyte = 2 40 bytes

Het proces van informatieoverdracht. Soorten en eigenschappen van bronnen en ontvangers van informatie. Signaal, codering en decodering, oorzaken van informatievervorming tijdens verzending

Informatie wordt verzonden in de vorm van berichten van sommige bron informatie aan haar ontvanger door communicatiekanaal tussen hen.

Een levend wezen of een technisch apparaat kan als informatiebron dienen. De bron verzendt het verzonden bericht, dat wordt gecodeerd in het verzonden signaal.

Signaal Is een materiële en energetische vorm van informatiepresentatie. Met andere woorden, signaal Is een drager van informatie, waarvan één of meerdere parameters, wisselend, een melding weergeven. Signalen kunnen zijn: analoog(continu) of discreet(impuls).

Het signaal wordt via het communicatiekanaal verzonden. Als resultaat verschijnt een ontvangen signaal bij de ontvanger, dat wordt gedecodeerd en een ontvangen bericht wordt.

De overdracht van informatie via communicatiekanalen gaat vaak gepaard met de invloed van interferentie, waardoor vervorming en informatieverlies ontstaat.

Voorbeelden van probleemoplossing

Voorbeeld 1. Om de letters A, Z, P, O te coderen, worden respectievelijk twee-bits binaire getallen 00, 01, 10, 11 gebruikt. Op deze manier werd het woord ROSE gecodeerd en werd het resultaat in hexadecimale code geschreven. Geef het ontvangen nummer op.

Oplossing. Laten we de reeks codes voor elk symbool van het woord ROSA opschrijven: 10 11 01 00. Als we de resulterende reeks beschouwen als een binair getal, dan is deze in de hexadecimale code gelijk aan: 1011 0100 2 = B4 16.

Antwoord geven: B4 16.

Informatieoverdrachtssnelheid en bandbreedte van het communicatiekanaal

Ontvangst/transmissie van informatie kan met verschillende snelheden plaatsvinden. De hoeveelheid informatie die per tijdseenheid wordt verzonden is: informatieoverdrachtsnelheid:, of informatie stroomsnelheid.

Snelheid wordt uitgedrukt in bits per seconde (bps) en veelvouden van Kbps en Mbps, maar ook in bytes per seconde (bytes/s) en veelvouden van KB/s en MB/s.

De maximale gegevensoverdrachtsnelheid over het communicatiekanaal wordt genoemd bandbreedte van het kanaal.

Voorbeelden van probleemoplossing

Voorbeeld 1. De gegevensoverdrachtsnelheid over de ADSL-verbinding is 256000 bps. Het duurde 3 minuten om het bestand via deze verbinding over te zetten. Bepaal de bestandsgrootte in kilobytes.

Oplossing. De bestandsgrootte kan worden berekend door de gegevensoverdrachtsnelheid te vermenigvuldigen met de overdrachtstijd. Laten we de tijd in seconden uitdrukken: 3 minuten = 3 ⋅ 60 = 180 seconden. Laten we de snelheid uitdrukken in kilobytes per seconde: 256000 bps = 256000: 8: 1024 KB/s. Bij het berekenen van de bestandsgrootte, om berekeningen te vereenvoudigen, selecteren we machten van twee:

Bestandsgrootte = (256000: 8: 1024) ⋅ (3 ⋅ 60) = (2 8 ⋅ 10 3: 2 3: 2 10) ⋅ (3 ⋅ 15 ⋅ 2 2) = (2 8 ⋅ 125 ⋅ 2 3: 2 3: 2 10) ⋅ (3 ⋅ 15 ⋅ 2 2) = 125 ⋅ 45 = 5625 KB.

Antwoord geven: 5625 KB.

Weergave van numerieke informatie. Optellen en vermenigvuldigen in verschillende getalsystemen

Weergave van numerieke informatie met behulp van getalsystemen

Om informatie in een computer weer te geven, wordt een binaire code gebruikt, waarvan het alfabet uit twee cijfers bestaat - 0 en 1. Elk cijfer van de binaire code van de machine bevat een hoeveelheid informatie die gelijk is aan één bit.

notatie Is een systeem voor het schrijven van getallen met behulp van een specifieke reeks getallen.

Het nummersysteem heet positioneel, als hetzelfde cijfer een andere betekenis heeft, die wordt bepaald door zijn plaats in het getal.

Positioneel is het decimale getalsysteem. In het getal 999 betekent het cijfer "9", afhankelijk van de positie, bijvoorbeeld 9, 90, 900.

Romeins cijfersysteem is niet-positioneel... De waarde van het cijfer X in het getal XXI blijft bijvoorbeeld ongewijzigd wanneer de positie in het getal wordt gevarieerd.

De positie van het cijfer in het nummer wordt genoemd afvoer... Het cijfer van het getal neemt toe van rechts naar links, van de minst significante bits naar de meest significante.

Het aantal verschillende cijfers dat in het positienummersysteem wordt gebruikt, wordt genoemd zijn basis.

Uitgebreide vorm van nummer Is een record dat de som is van de producten van de cijfers van een getal door de waarde van posities.

Bijvoorbeeld: 8527 = 8 ⋅ 10 3 + 5 ⋅ 10 2 + 2 ⋅ 10 1 + 7 ⋅ 10 0.

De uitgebreide vorm van het schrijven van getallen in een willekeurig getallenstelsel is:

$ ∑↙ (i = n-1) ↖ (-m) a_iq ^ ik $,

waarbij $ X $ een getal is;

$ a $ - cijfers van een numeriek record dat overeenkomt met de cijfers;

$ i $ - index;

$ m $ - het aantal cijfers van het nummer van het fractionele deel;

$ n $ - aantal cijfers van het integer onderdeelnummer;

$ q $ - wortel.

Laten we bijvoorbeeld de uitgebreide vorm van het decimale getal $ 327,46 $ schrijven:

$ n = 3, m = 2, q = 10. $

$ X = ∑↙ (i = 2) ↖ (-2) a_iq ^ i = a_2 10 ^ 2 + a_1 10 ^ 1 + a_0 10 ^ 0 + a _ (- 1) 10 ^ (- 1) + a _ ( - 2) 10 ^ (- 2) = 3 10 ^ 2 + 2 10 ^ 1 + 7 10 ^ 0 + 4 10 ^ (- 1) + 6 10 ^ (- 2) $

Als de basis van het gebruikte getallenstelsel meer dan tien is, dan wordt een symbool met een haakje bovenaan of een alfabetische aanduiding voor de getallen ingevoerd: B - binair systeem, O - octaal, H - hexadecimaal.

Als in het duodecimale getalsysteem bijvoorbeeld 10 = A en 11 = B, dan kan het getal 7A, 5B 12 als volgt worden geschreven:

7A, 5B 12 = B ⋅ 12 -2 + 5 ⋅ 2 -1 + A ⋅ 12 0 + 7 ⋅ 12 1.

Het hexadecimale getalsysteem heeft 16 cijfers, aangeduid met 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, wat overeenkomt met de volgende decimale getallen: 0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Voorbeelden van getallen: 17D, ECH; F12AH.

Vertaling van getallen in positienummersystemen

Getallen converteren van een willekeurig getalsysteem naar decimaal

Om een ​​nummer van een willekeurig nummersysteem naar decimaal te converteren, is het noodzakelijk om de uitgebreide vorm van het nummer te gebruiken, waarbij, indien nodig, de letteraanduidingen worden vervangen door de overeenkomstige cijfers. Bijvoorbeeld:

1101 2 = 1 ⋅ 2 3 + 1 ⋅ 2 2 + 0 ⋅ 2 1 + 1 ⋅ 2 0 = 13 10 ;

17D, ECH = 12 16 -2 + 14 16 -1 + 13 ⋅ 160 + 7 ⋅ 16 1 + 1 ⋅ 16 2 = 381.921875.

Getallen converteren van het decimale getalsysteem naar het gegeven

Om een ​​geheel getal van een decimaal getalstelsel om te zetten in een getal uit een ander getalstelsel, wordt deling achtereenvolgens uitgevoerd door de radix totdat nul is verkregen. De getallen die ontstaan ​​als de rest van deling door de basis van het systeem vertegenwoordigen een opeenvolgend record van de cijfers van het getal in het geselecteerde getalsysteem van het minst significante cijfer tot het meest significante cijfer. Daarom, om het getal zelf te schrijven, worden de restanten van de deling in omgekeerde volgorde geschreven.

Laten we bijvoorbeeld decimaal 475 naar binair converteren. Om dit te doen, zullen we sequentieel deling volledig uitvoeren door de basis van het nieuwe nummersysteem, dat wil zeggen door 2:

Als we de restanten van de deling van onder naar boven lezen, krijgen we 111011011.

Inspectie:

1 ⋅ 2 8 + 1 ⋅ 2 7 + 1 ⋅ 2 6 + 0 ⋅ 2 5 + 1 ⋅ 2 4 + 1 ⋅ 2 3 + 0 ⋅ 2 2 + 1 ⋅ 2 1 + 1 ⋅ 2 0 = 1 + 2 + 8 + 16 + 64 + 128 + 256 = 475 10 .

Om decimale breuken om te zetten in een getal van een willekeurig getalsysteem, vermenigvuldigt u opeenvolgend met het grondtal van het getallenstelsel totdat het breukdeel van het product gelijk is aan nul. De resulterende hele delen zijn de cijfers van het nummer in het nieuwe systeem, en ze moeten worden weergegeven door de cijfers van dit nieuwe nummersysteem. Hele delen worden later weggegooid.

Laten we bijvoorbeeld de decimale breuk 0,375 10 converteren naar het binaire getallenstelsel:

Het resultaat is 0,011 2.

Niet elk getal kan nauwkeurig worden uitgedrukt in het nieuwe getallenstelsel, waardoor soms alleen het vereiste aantal decimalen wordt berekend.

Getallen converteren van binair naar octaal en hexadecimaal en vice versa

Acht cijfers worden gebruikt om octale getallen te schrijven, dat wil zeggen dat er 8 opname-opties mogelijk zijn in elk cijfer van het nummer. Elk cijfer van het octale getal bevat 3 bits informatie (8 = 2 I; I = 3).

Dus om een ​​getal uit het octale getalsysteem om te zetten in een binaire code, moet elk cijfer van dit getal worden weergegeven door een triade van binaire symbolen. Extra voorloopnullen worden weggegooid.

Bijvoorbeeld:

1234,777 8 = 001 010 011 100,111 111 111 2 = 1 010 011 100,111 111 111 2 ;

1234567 8 = 001 010 011 100 101 110 111 2 = 1 010 011 100 101 110 111 2 .

Vervang bij het converteren van een binair getal naar het octale getalsysteem elke triade van binaire cijfers door een octaal cijfer. In dit geval wordt het getal indien nodig uitgelijnd door nullen toe te voegen voor het gehele deel of na het breukdeel.

Bijvoorbeeld:

1100111 2 = 001 100 111 2 = 147 8 ;

11,1001 2 = 011,100 100 2 = 3,44 8 ;

110,0111 2 = 110,011 100 2 = 6,34 8 .

Er worden zestien cijfers gebruikt om hexadecimale getallen te schrijven, dat wil zeggen dat er 16 opname-opties mogelijk zijn voor elk cijfer van het getal. Elk cijfer van een hexadecimaal getal bevat 4 bits informatie (16 = 2 ; І = 4).

Dus om een ​​binair getal naar hexadecimaal te converteren, moet je het in groepen van vier cijfers splitsen en elke groep naar een hexadecimaal cijfer converteren.

Bijvoorbeeld:

1100111 2 = 0110 0111 2 = 67 16 ;

11,1001 2 = 0011,1001 2 = 3,9 16 ;

110,0111001 2 = 0110,0111 0010 2 = 65,72 16 .

Om een ​​hexadecimaal getal om te zetten in een binaire code, moet elk cijfer van dit getal worden weergegeven door vier binaire cijfers.

Bijvoorbeeld:

1234, AB77 16 = 0001 0010 0011 0100.1010 1011 0111 0111 2 = 1 0010 0011 0100.1010 1011 0111 0111 2;

CE4567 16 = 1100 1110 0100 0101 0110 0111 2.

Bij het converteren van een getal van het ene willekeurig getalsysteem naar het andere, moet je een tussenconversie naar een decimaal getal uitvoeren. Bij het overschakelen van octaal naar hexadecimaal en vice versa, wordt de binaire hulpcode van het getal gebruikt.

Laten we bijvoorbeeld het ternaire getal 211 3 vertalen naar het zevenvoudige getalsysteem. Om dit te doen, converteert u eerst het getal 211 3 naar decimaal en noteert u de uitgebreide vorm:

211 3 = 2 ⋅ 3 2 + 1 ⋅ 3 1 + 1 ⋅ 3 0 = 18 + 3 + 1 = 22 10 .

Vervolgens vertalen we het decimale getal 22 10 naar het zevenvoudige getallenstelsel door op basis van het nieuwe getallenstelsel geheel te delen, dus door 7:

Dus 211 3 = 31 7.

Voorbeelden van probleemoplossing

Voorbeeld 1. In het getallenstelsel met een grondtal wordt het getal 12 geschreven in de vorm 110. Geef dit grondtal aan.

Oplossing. Laten we het vereiste grondtal aanduiden met n. Volgens de regel van het schrijven van getallen in positienummerstelsels 12 10 = 110 n = 0 · n 0 + 1 · n 1 + 1 · n 2. Laten we de vergelijking maken: n 2 + n = 12. Laten we de natuurlijke wortel van de vergelijking zoeken (een negatieve wortel past niet, omdat de basis van het getallenstelsel per definitie een natuurlijk getal groter dan één is): n = 3. Laten we het ontvangen antwoord controleren: 110 3 = 0 3 0 + 1 3 1 + 1 3 2 = 0 + 3 + 9 = 12.

Antwoord geven: 3.

Voorbeeld 2. Specificeer, gescheiden door komma's, in oplopende volgorde alle basen van de getallenstelsels waarin het getal 22 eindigt op 4.

Oplossing. Het laatste cijfer in een getal is de rest van de deling van het getal door de basis van het getallenstelsel. 22 - 4 = 18. Zoek de delers van het getal 18. Dit zijn de getallen 2, 3, 6, 9, 18. De getallen 2 en 3 passen niet, aangezien er in de getallenstelsels met grondtalen 2 en 3 geen nummer 4. De gezochte bases zijn dus de nummers 6, 9 en 18. Laten we het resultaat controleren dat is verkregen door het nummer 22 op te schrijven in de aangegeven getalsystemen: 22 10 = 34 6 = 24 9 = 14 18.

Antwoord geven: 6, 9, 18.

Voorbeeld 3. Specificeer, gescheiden door komma's, in oplopende volgorde alle getallen die niet groter zijn dan 25, waarvan de invoer in het binaire getalsysteem eindigt op 101. Schrijf het antwoord in het decimale getalsysteem.

Oplossing. Voor het gemak gebruiken we het octale nummersysteem. 101 2 = 5 8. Dan kan het getal x worden weergegeven als x = 5 8 0 + a 1 8 1 + a 2 8 2 + a 3 8 3 + ..., waarbij a 1, a 2, a 3, ... octale cijfers zijn. .. De gezochte getallen mogen niet groter zijn dan 25, dus de uitbreiding moet worden beperkt tot de eerste twee termen (8 2> 25), dat wil zeggen dat dergelijke getallen de representatie x = 5 + a 1 · 8 moeten hebben. Aangezien x ≤ 25, toelaatbare waarden van een 1 zijn 0 , 1, 2. Als we deze waarden in de uitdrukking voor x substitueren, krijgen we de vereiste getallen:

een 1 = 0; x = 5 + 0 8 = 5 ;.

een 1 = 1; x = 5 + 1 8 = 13 ;.

een 1 = 2; x = 5 + 2 8 = 21 ;.

Laten we het controleren:

13 10 = 1101 2 ;

21 10 = 10101 2 .

Antwoord geven: 5, 13, 21.

Rekenkundige bewerkingen in positionele nummersystemen

De regels voor het uitvoeren van rekenkundige bewerkingen op binaire getallen worden bepaald door de tabellen van optellen, aftrekken en vermenigvuldigen.

De regel voor het uitvoeren van de optelbewerking is hetzelfde voor alle nummerstelsels: als de som van de toegevoegde cijfers groter is dan of gelijk is aan het grondtal van het cijferstelsel, wordt de eenheid overgedragen naar het volgende cijfer aan de linkerkant. Door af te trekken, indien nodig een lening aan te gaan.

uitvoeringsvoorbeeld toevoegingen: binaire getallen 111 en 101, 10101 en 1111 toevoegen:

uitvoeringsvoorbeeld aftrekken: trek binaire getallen 10001 - 101 en 11011 - 1101 af:

uitvoeringsvoorbeeld vermenigvuldiging: vermenigvuldig binaire getallen 110 en 11, 111 en 101:

Rekenkundige bewerkingen worden op dezelfde manier uitgevoerd in octale, hexadecimale en andere getalsystemen. Houd er rekening mee dat het bedrag van de overdracht naar het volgende cijfer tijdens het optellen en een lening van het meest significante cijfer tijdens het aftrekken wordt bepaald door de waarde van de basis van het getallenstelsel.

Laten we bijvoorbeeld de octale getallen 36 8 en 15 8 optellen en de hexadecimale getallen 9C 16 en 67 16 aftrekken:

Wanneer u rekenkundige bewerkingen uitvoert op getallen die in verschillende getalstelsels voorkomen, moet u ze eerst in hetzelfde stelsel vertalen.

Getallen weergeven op een computer

Vast punt formaat

In het computergeheugen worden gehele getallen opgeslagen in het formaat met vast punt: elk bit van de geheugencel komt overeen met hetzelfde bit van het getal, de "komma" staat buiten het bitraster.

Er worden 8 bits geheugen toegewezen om niet-negatieve gehele getallen op te slaan. Het minimumaantal komt overeen met acht nullen die zijn opgeslagen in acht bits van de geheugencel en is gelijk aan 0. Het maximumaantal komt overeen met acht enen en is gelijk aan

1 ⋅ 2 7 + 1 ⋅ 2 6 + 1 ⋅ 2 5 + 1 ⋅ 2 4 + 1 ⋅ 2 3 + 1 ⋅ 2 2 + 1 ⋅ 2 1 + 1 ⋅ 2 0 = 255 10 .

Het bereik voor niet-negatieve gehele getallen is dus van 0 tot 255.

Voor n-bits weergave is het bereik van 0 tot 2 n - 1.

Getekende gehele getallen worden opgeslagen in 2 bytes geheugen (16 bits). De meest significante bit wordt toegewezen onder het teken van het getal: als het getal positief is, wordt 0 geschreven in het tekenbit, als het getal negatief is - 1. Zo'n representatie van getallen in een computer wordt genoemd directe code.

Gebruik . om negatieve getallen weer te geven extra code... Hiermee kunt u de rekenkundige bewerking van aftrekken vervangen door de bewerking van optellen, wat het werk van de processor aanzienlijk vereenvoudigt en de prestaties verhoogt. De aanvullende code van een negatief getal A opgeslagen in n cellen is gelijk aan 2 n - | A |.

Algoritme voor het verkrijgen van een complementaire code voor een negatief getal:

1. Schrijf de directe code van het getal op in n binaire cijfers.

2. Get omgekeerde cijfercode... (De omgekeerde code wordt gevormd uit de voorwaartse code door nullen te vervangen door enen, en enen - met nullen, behalve de getekende cijfers. Voor positieve getallen valt de omgekeerde code samen met de voorwaartse code. Het wordt gebruikt als een tussenliggende link om een extra code.)

3. Voeg er een toe aan de ontvangen retourcode.

We krijgen bijvoorbeeld de aanvullende code voor het getal -2014 10 voor de zestien-bits representatie:

Bij algebraïsche optelling van binaire getallen met behulp van een complementcode, worden positieve termen weergegeven in de directe code en negatieve in de complementcode van de twee. Vervolgens worden deze codes opgeteld, inclusief de tekenbits, die als de meest significante bits worden beschouwd. Bij overdracht van het tekenbit wordt de overdrachtseenheid weggegooid. Als resultaat wordt een algebraïsche som verkregen in een directe code als deze som positief is, en in een extra - als de som negatief is.

Bijvoorbeeld:

1) Zoek het verschil 13 10 - 12 10 voor een acht-bits weergave. Laten we de gegeven getallen in het binaire getallenstelsel voorstellen:

13 10 = 1101 2 en 12 10 = 1100 2.

Laten we de voorwaartse, achterwaartse en complementaire codes voor het getal -12 10 en de voorwaartse code voor het getal 13 10 in acht bits schrijven:

Aftrekken wordt vervangen door optellen (voor het gemak van controle over het tekencijfer, scheiden we het voorwaardelijk met het "_" -teken):

Omdat er een overdracht was van het tekenbit, gooien we de eerste eenheid weg en als resultaat krijgen we 00000001.

2) Zoek het verschil 8 10 - 13 10 voor een acht-bits weergave.

Laten we de voorwaartse, achterwaartse en aanvullende codes voor het getal -13 10 en de voorwaartse code voor het getal 8 10 in acht bits schrijven:

Aftrekken wordt vervangen door optellen:

Er zit één in het tekenbit, wat betekent dat het resultaat wordt verkregen in de twee-complementcode. Laten we van de complementaire code naar het omgekeerde gaan door er één van af te trekken:

11111011 - 00000001 = 11111010.

Laten we van de omgekeerde code naar de directe gaan, waarbij we alle cijfers omkeren, behalve het ondertekende (meest significante) cijfer: 10000101. Dit is een decimaal getal -5 10.

Aangezien met de n-bits weergave van een negatief getal A in de twee-complementcode, de meest significante bit wordt toegewezen om het teken van het getal op te slaan, is het minimale negatieve getal: A = -2 n-1 en het maximum: | Een | = 2 n-1 of A = -2 n-1 - 1.

Laten we het bereik van getallen definiëren dat in het RAM kan worden opgeslagen in het formaat lange getekende gehele getallen(32 bits geheugen worden toegewezen om dergelijke nummers op te slaan). Het minimale negatieve getal is

A = -2 31 = -2147483648 10.

Het maximale positieve getal is

A = 2 31 - 1 = 2147483647 10.

De voordelen van het fixed-point-formaat zijn de eenvoud en duidelijkheid van de weergave van getallen, de eenvoud van de algoritmen voor de implementatie van rekenkundige bewerkingen. Het nadeel is het kleine bereik van representatieve getallen, onvoldoende om de meeste toegepaste problemen op te lossen.

Opmaak met drijvende komma

Reële getallen worden op een computer opgeslagen en verwerkt in een formaat met drijvende komma exponentiële notatie gebruiken voor getallen.

Een getal in exponentieel formaat wordt als volgt weergegeven:

waarbij $ m $ de mantisse van een getal is (een gewone breuk die niet nul is);

$ q $ - basis van het getallenstelsel;

$ n $ is de volgorde van het nummer.

Decimaal getal 2674.381 in exponentiële vorm zou bijvoorbeeld als volgt worden geschreven:

2674,381 = 0,2674381 ⋅ 10 4 .

Een getal met drijvende komma kan 4 bytes in het geheugen in beslag nemen ( conventionele nauwkeurigheid) of 8 bytes ( dubbele precisie). Bij het schrijven van een getal worden de cijfers toegewezen om het teken van de mantisse, teken van orde, orde en mantisse op te slaan. De laatste twee waarden bepalen het bereik van veranderingen in getallen en hun nauwkeurigheid.

Laten we het bereik (volgorde) en precisie (mantisse) definiëren voor het formaat van getallen met gewone precisie, dat wil zeggen vier bytes. Van de 32 bits zijn er 8 toegewezen voor het opslaan van de volgorde en het teken, en 24 voor het opslaan van de mantisse en het teken.

Zoek de maximale waarde van de volgorde van het nummer. Van de 8 bits wordt de meest significante bit gebruikt om het teken van de bestelling op te slaan, de overige 7 - om de waarde van de bestelling te schrijven. De maximale waarde is dus 1111111 2 = 127 10. Aangezien getallen worden weergegeven in een binair systeem, is dan:

$ q ^ n = 2 ^ (127) ≈ 1,7 10 ^ (38) $.

Evenzo is de maximale waarde van de mantisse

$ m = 2 ^ (23) - 1 ≈ 2 ^ (23) = 2 ^ ((10 2.3)) ≈ 1000 ^ (2,3) = 10 ^ ((3 2.3)) ≈ 10 ^ 7 $.

Het bereik van normale precisiegetallen is dus $ ± 1,7 · 10 ^ (38) $.

Coderen van tekstinformatie. ASCII-codering. De belangrijkste gebruikte coderingen van het Cyrillische alfabet

De overeenkomst tussen een reeks tekens en een reeks numerieke waarden wordt genoemd tekencodering. Wanneer tekstinformatie in een computer wordt ingevoerd, is deze binair gecodeerd. De tekencode wordt opgeslagen in het RAM-geheugen van de computer. Tijdens het weergeven van een personage op het scherm, wordt de tegenovergestelde bewerking uitgevoerd - decoderen, dat wil zeggen, het omzetten van een tekencode in zijn afbeelding.

De specifieke numerieke code die aan elk teken is toegewezen, wordt vastgelegd in de codetabellen. Verschillende numerieke codes kunnen overeenkomen met hetzelfde teken in verschillende codetabellen. De noodzakelijke tekstconversies worden meestal uitgevoerd door speciale conversieprogramma's die in de meeste applicaties zijn ingebouwd.

Gewoonlijk wordt één byte (acht bits) gebruikt om een ​​tekencode op te slaan, dus tekencodes kunnen variëren van 0 tot 255. Dergelijke coderingen worden enkelbyte... Ze staan ​​256 karakters toe (N = 2 I = 2 8 = 256). Een tabel met enkelbyte tekencodes wordt genoemd ASCII (American Standard Code for Information Interchange)- Amerikaanse standaardcode voor informatie-uitwisseling). Het eerste deel van de ASCII-codetabel (van 0 tot 127) is hetzelfde voor alle IBM-PC-compatibele computers en bevat:

  • controle karakter codes;
  • codes van getallen, rekenkundige bewerkingen, leestekens;
  • enkele speciale tekens;
  • codes van grote en kleine Latijnse letters.

Het tweede deel van de tabel (codes van 128 tot 255) is verschillend in verschillende computers. Het bevat codes van letters van het nationale alfabet, codes van enkele wiskundige symbolen, codes van pseudo-grafische symbolen. Voor Russische letters worden momenteel vijf verschillende codetabellen gebruikt: KOI-8, CP1251, CP866, Mac, ISO.

Onlangs is een nieuwe internationale standaard wijdverbreid geworden Unicode... Het heeft twee bytes (16 bits) voor het coderen van elk teken, zodat het kan worden gebruikt om 65536 verschillende tekens te coderen (N = 2 16 = 65536). Tekencodes kunnen variëren van 0 tot 65535.

Voorbeelden van probleemoplossing

Voorbeeld. De volgende zin is gecodeerd met Unicode-codering:

Ik wil naar de universiteit gaan!

Schat het informatieve volume van deze zin.

Oplossing. Deze zin bevat 31 tekens (inclusief spaties en leestekens). Aangezien aan elk teken in Unicode 2 bytes geheugen is toegewezen, heeft de hele zin 31 2 = 62 bytes of 31 ⋅ 2 ⋅ 8 = 496 bits nodig.

Antwoord geven: 32 bytes of 496 bits.

A9 Thema: Coderen en decoderen van informatie.

Wat je moet weten:

Coderen is de vertaling van informatie van de ene taal naar de andere (schrijven in een ander systeem van symbolen,
in een ander alfabet)

· Gewoonlijk wordt codering de vertaling van informatie van de "menselijke" taal in een formele taal genoemd, bijvoorbeeld in een binaire code, en decodering is de omgekeerde overgang

Eén teken van het oorspronkelijke bericht kan worden vervangen door één teken van de nieuwe code of meerdere tekens, of misschien vice versa - meerdere tekens van het oorspronkelijke bericht worden vervangen door één teken in de nieuwe code (Chinese tekens geven hele woorden en concepten aan)

· codering kan zijn: uniform en ongelijkmatig ;
bij uniforme codering worden alle symbolen gecodeerd met codes van gelijke lengte;
met ongelijke codering kunnen verschillende symbolen worden gecodeerd met codes van verschillende lengtes, wat het decoderen bemoeilijkt

Het gecodeerde bericht kan uniek zijn: decoderen vanaf het begin indien geëxecuteerd De toestand van Fano : geen codewoord is het begin van een ander codewoord;

Het gecodeerde bericht kan zijn: ondubbelzinnig decoderen vanaf het einde indien geëxecuteerd inverse Fano-conditie: geen codewoord is het einde van een ander codewoord;

· De voorwaarde van Fano is een voldoende maar niet noodzakelijke voorwaarde voor eenduidige decodering.

Voorbeeldtaak

Het communicatiekanaal zendt berichten uit die slechts 4 letters bevatten: E, H, O, T. Om de letters E, H, O te coderen, worden 5-bit codewoorden gebruikt: E - 00000, H - 00111, O - 11011. Hiervoor reeks codewoordenwoorden, is voldaan aan de volgende eigenschap: twee willekeurige woorden uit de reeks verschillen op ten minste drie posities. Deze eigenschap is belangrijk voor het decoderen van berichten in aanwezigheid van interferentie. Welke van de volgende codewoorden kan worden gebruikt voor de letter T, zodat voor iedereen aan de opgegeven eigenschap wordt voldaan?
vier codewoorden?

1) 1100 geen van de bovenstaande woorden komt overeen

Oplossing:

1) de code die in de probleemstelling wordt beschouwd, verwijst naar codes die ongevoelig zijn voor ruis en waarmee u een bepaald aantal fouten kunt detecteren en corrigeren die worden veroorzaakt door interferentie tijdens gegevensoverdracht;

1) het aantal posities waarin twee codewoorden van dezelfde lengte verschillen, wordt de Hamming-afstand genoemd

2) een code waarin de Hamming-afstand tussen elk paar codewoorden is NS, kunt u detecteren tot NS-1 fouten; voor correctie R fouten vereisen dat aan de voorwaarde wordt voldaan

NS ≥ 2r + 1

dus de code met NS = 3 stelt u in staat een of twee fouten te detecteren en één fout te herstellen.

3) het is gemakkelijk te controleren dat voor een bepaalde code (E - 00000, H - 00111, O - 11011) de Hamming-afstand 3 is; verschillende bits zijn gemarkeerd in de tabel, er zijn er drie in paren E-H en H-O en vier
in paar E-O:

E - 00000 E - 00000 N - 00111

N - 00111 O - 11011 O - 11011

4) nu controleren we de afstand tussen bekende codes en antwoordmogelijkheden; voor het eerste antwoord 11111 krijgen we de minimale afstand 1 (in het O-T-paar), deze optie is niet geschikt:

T - 11111 T - 11111 T - 11111

5) voor het tweede antwoord 11100 krijgen we de minimale afstand 3 (in paren E-T en O-T):

E - 00000 N - 00111 O - 11011

T - 11100 T - 11100 T - 11100

6) voor het derde antwoord 00011 krijgen we de minimale afstand 1 (in paar Н-Т), deze optie is niet geschikt:

E - 00000 N - 00111 O - 11011

T - 00011 T - 00011 T - 00011

7) dus Hamming-afstand van 3 wordt alleen opgeslagen voor antwoord 2 Antwoord: 2.

Een ander voorbeeld van een taak:

Om een ​​bepaalde reeks, bestaande uit de letters A, B, C, D en D, te coderen, wordt een ongelijke binaire code gebruikt, die het mogelijk maakt om de resulterende binaire reeks ondubbelzinnig te decoderen. Hier is de code: A-00, B-010, B-011, G-101, D-111. Is het mogelijk om de lengte van het codewoord voor een van de letters in te korten, zodat de code toch ondubbelzinnig kan worden gedecodeerd? De codes voor de rest van de letters mogen niet worden gewijzigd. Kies het juiste antwoord.

1) voor de letter B - dit is onmogelijk

3) voor de letter B - voor de letter G - 01

Oplossing (1 manier, Fano-voorwaarden controleren):

8) voor eenduidige decodering is het voldoende dat aan de Fano-voorwaarde of de inverse Fano-voorwaarde is voldaan;

9) we controleren achtereenvolgens opties 1, 3 en 4; als geen van beide werkt, moet je optie 2 kiezen ("dit is onmogelijk");

10) rekening Optie 1: A-00, B-01, B-011, G-101, D-111.

«(de code van de letter B valt samen met het begin van de code van de letter B);

Er is niet voldaan aan de "inverse" Fano-voorwaarde(de code van de letter B valt samen met het einde van de code van de letter D); daarom is deze optie niet geschikt;

11) rekening Optie 3: A-00, B-010, B-01, G-101, D-111.

« direct ”Fano conditie is niet voldaan(de code van de letter C valt samen met het begin van de code van de letter B);

« het omgekeerde "Fano-voorwaarde is niet voldaan"(de code van de letter B valt samen met het einde van de code van de letter G); daarom is deze optie niet geschikt;

12) rekening optie 4: A-00, B-010, B-011, G-01, D-111.

« direct ”Fano conditie is niet voldaan(de code van de letter G valt samen met het begin van de codes van de letters B en C);
maar Aan de "omgekeerde" Fano-voorwaarde is voldaan(de code van de letter G valt niet samen met het einde van de codes van de overige letters); dus deze optie past bij; het juiste antwoord is 4.

Voorbeeld baan: demo_12

Om een ​​bepaalde reeks, bestaande uit de letters A, B, C, D en D, te coderen, werd besloten een ongelijke binaire code te gebruiken, die een eenduidige decodering van de binaire reeks die aan de ontvangende kant van het communicatiekanaal verschijnt, mogelijk maakt. Gebruikte de code : A – 1, B – 000, B – 001, G – 011.
Specificeer welk codewoord gecodeerd moet worden met letter D. De lengte van dit codewoord moet zo klein mogelijk zijn. De code moet voldoen aan de eenduidige decoderingseigenschap.

Oplossing:

13) merk op dat voor een bekend deel van de code aan de Fano-voorwaarde is voldaan - geen codewoord is het begin van een ander codewoord

14) als D = 00, zo'n codeketen valt samen met het begin van B = 000 en B = 001 000000: het kan DDD of BB zijn; dus de eerste optie past niet

15) als D = 01, zo'n codeketen valt samen met het begin Г = 011, is het onmogelijk om de keten ondubbelzinnig te decoderen 011: het kan JA of Y zijn; dus de tweede optie is ook past niet

16) als D = 11, Fano's voorwaarde wordt ook geschonden: het codewoord A = 1 valt samen met het begin van de code van de letter D, het is onmogelijk om de keten ondubbelzinnig te decoderen 111: het kan JA of AAA zijn; derde optie
past niet

17) voor de vierde optie, D = 010, de voorwaarde van Fano is niet geschonden; goed antwoord 4 .

Een ander voorbeeld van een taak:

Om een ​​bericht te verzenden via een communicatiekanaal, dat alleen bestaat uit de letters A, B, C, D, werd besloten een code te gebruiken die ongelijk van lengte is: A = 0, B = 10, C = 110. Hoe te coderen?
letter Г, zodat de lengte van de code minimaal is en het eenduidig ​​opsplitsen van het gecodeerde bericht in letters is toegestaan?

Oplossing (optie 1, selectiemethode):

1) overweeg alle opties in volgorde van toenemende lengte van de code van de letter G

2) laten we beginnen met Г = 1; het blijkt dat het bericht "10" op twee manieren kan worden gedecodeerd:
hoe GA of B, daarom is deze optie niet geschikt

3) volgende langste optie G = 11; in dit geval kan het bericht "110" worden gedecodeerd
hoe GA of B, daarom is deze optie ook niet geschikt 4) derde optie, G = 111 , geeft een eenduidige decodering in alle lettercombinaties, dus ... het antwoord is 3.

Een ander voorbeeld van een taak:

Om de letters A, B, C, D te coderen, hebben we besloten om tweecijferige opeenvolgende binaire getallen te gebruiken (respectievelijk van 00 tot 11). Als je op deze manier een reeks tekens BAVG codeert en het resultaat in een hexadecimale code schrijft, krijg je

Oplossing:

18) van de voorwaarde zijn de lettercodes: A - 00, B –01, C - 10 en D - 11, de code is uniform

19) de BAVG-reeks is als volgt gecodeerd: = 1001011

20) verdeel zo'n record in tetrads van rechts naar links en vertaal elke tetrad in het hexadecimale systeem (dat wil zeggen, eerst in decimaal, en vervang dan alle getallen van 10 tot 15 door de letters A, B, C, D, E, F); we krijgen 1001011 = 0 = 4B16 Het juiste antwoord is 1.

Een ander voorbeeld van een taak:

Een zwart-wit bitmap wordt regel voor regel gecodeerd, beginnend in de linkerbovenhoek en eindigend in de rechterbenedenhoek. Wanneer gecodeerd, staat 1 voor zwart en 0 voor wit.

Voor compactheid werd het resultaat in hexadecimale notatie geschreven. Selecteer de juiste code-invoer.

1) BD9AA5 2) BDA9B5 3) BDA9D5 4) DB9DAB

Oplossing:

1) "rek" de bitmap uit tot een ketting: eerst de eerste (bovenste) regel, dan de tweede, enzovoort:

1 regel

2 regels

3 regels

4 regels

2) er zijn 24 cellen in deze strook, zwarte zijn gevuld met enen en witte - met nullen:

1

1

1

1

1

1

1

1

1

1

1 regel

2 regels

3 regels

4 regels

3) aangezien elk cijfer in het hexadecimale systeem wordt ontleed in precies 4 binaire cijfers, splitsen we de strook in tetrads- groepen van vier cellen (in dit geval maakt het niet uit waar de uitsplitsing moet beginnen, aangezien er een geheel aantal notebooks in de strip is - 6):

1

1

1

1

1

1

1

1

1

1

4) als we de tetrads vertalen naar het hexadecimale systeem, krijgen we achtereenvolgens de getallen B (11), D (13), A (10), 9, D (13) en 5, dat wil zeggen de ketting BDA9D5 Goed antwoord – 3.

Een ander voorbeeld van een taak:

Een pariteitscontrolecode wordt gebruikt om nummers over een kanaal met ruis te verzenden. Elk van zijn cijfers is geschreven in binaire representatie, met toevoeging van voorloopnullen tot lengte 4, en de som van de elementen modulo wordt toegevoegd aan de resulterende reeks 2 (bijvoorbeeld als we overstappen) 23 , dan krijgen we de reeks 0010 1 00110 ). Bepaal welk nummer via het kanaal is verzonden in het formulier 0100011 ?

Oplossing:

1) Laten we eerst eens kijken hoe de getallen in het voorbeeld zijn gecodeerd; het is duidelijk dat een code van uniforme lengte wordt gebruikt; aangezien 2 karakters zijn gecodeerd in 10 binaire cijfers (bits), worden 5 bits toegewezen voor elk cijfer, dat wil zeggen 2 → 00101 en 3 → 00110

2) als volgt uit de voorwaarde, de eerste vier bits in elke reeks zijn de binaire code van het cijfer, en het vijfde bit (pariteitsbit) wordt gebruikt voor verificatie en wordt berekend als "som modulo twee", dat wil zeggen de rest van het delen van de som van bits door 2; dan

2 = 00102, pariteitsbit (0 + 0 + 1 + 0) mod 2 = 1

3 = 00112, pariteitsbit (0 + 0 + 1 + 1) mod 2 = 0

3) maar het pariteitsbit is volledig niet nodig, een ander ding is belangrijk: het vijfde bit in elke vijf kan worden verwijderd!

4) splits de gegeven reeks in groepen van elk 5 bits:

01010, 10010, 01111, 00011.

5) gooi het vijfde (laatste) bit in elke groep weg: 0101, 1001, 0111, 0001.
dit zijn de binaire codes van de verzonden nummers: 01012 = 5, 10012 = 9, 01112 = 7, 00012 = 1.

6) dus de nummers 5, 9, 7, 1 of het nummer 5971.

7) Antwoord: 2.

A9 Trainingstaken.

№ 69 – 71

69) Berichten met slechts 4 letters worden verzonden via het communicatiekanaal: A, B, C, D. Om de letters A, B, C te coderen, worden 5-bit codewoorden gebruikt: A - 10000, B - 00101, C - 01010 Hiervoor heeft de set codewoorden de volgende eigenschap: twee willekeurige woorden uit de set verschillen in minimaal drie posities. Deze eigenschap is belangrijk voor het decoderen van berichten in aanwezigheid van interferentie. Welke van de volgende codewoorden kan worden gebruikt voor de letter Г zodat aan de gespecificeerde eigenschap wordt voldaan voor alle vier de codewoorden?

1) 0110 geen van de bovenstaande woorden komt overeen

70) (http: // bijv. *****) Een uniforme binaire code wordt gebruikt om ruisimmuunberichten te verzenden in een alfabet dat 16 verschillende tekens bevat. Deze code voldoet aan de volgende eigenschap: elk codewoord bevat een even aantal enen (mogelijk geen). Wat is de kleinste codewoordlengte?

71) Via het communicatiekanaal worden berichten verzonden die slechts 5 letters A, I, K, O, T bevatten. Om letters te coderen, wordt een ongelijke binaire code gebruikt met de volgende codewoorden:

A-0, I-00, K-10, O-110, T-111.

Geef onder de onderstaande woorden een op waarvan de code maar op één manier kan worden gedecodeerd. Als er meerdere van dergelijke woorden zijn, vermeld dan de eerste in alfabetische volgorde.

1) KAA 2) IKOTA 3) CAT 4) geen van de berichten komt overeen

1. Om de letters A, B, C, D te coderen, hebben we besloten om tweecijferige opeenvolgende binaire getallen te gebruiken (respectievelijk van 00 tot 11). Als u op deze manier een reeks GBVA-tekens codeert en het resultaat in hexadecimale code schrijft, krijgt u:

1) 13DBCA16 3) D

2. Voor 5 letters van het Latijnse alfabet worden hun binaire codes gegeven (voor sommige letters - van twee
beetje, voor sommigen - van de drie). Deze codes zijn weergegeven in de tabel:

Bepaal welke reeks letters wordt gecodeerd door een binaire tekenreeks

1) baade 2) badde 3) bacde 4) bacdb

3. Om een ​​bericht te coderen dat alleen de letters A, B, C, D en E bevat, gebruik
ongelijk in lengte binaire code:

Welke (slechts één!) Van de vier ontvangen berichten is foutloos verzonden
en kan worden gedecodeerd:

4. Om een ​​bericht te verzenden via een communicatiekanaal, dat alleen bestaat uit de letters A, B, C, D, is gekozen voor een code die ongelijk is in lengte: A = 0, B = 100, C = 101. Hoe moet de letter G worden gecodeerd zodat de lengte van de code minimaal is en het eenduidig ​​opsplitsen van het gecodeerde bericht in letters is toegestaan?

5. Een zwart-wit bitmap wordt regel voor regel gecodeerd, beginnend in de linkerbovenhoek en eindigend in de rechterbenedenhoek. Wanneer gecodeerd, is 1 zwart en 0 is wit.

Voor compactheid werd het resultaat geschreven in een octaal getalsysteem. Selecteer de juiste code-invoer. 1412

6. Een pariteitscontrolecode wordt gebruikt om nummers over een kanaal met ruis te verzenden. Elk van zijn cijfers is geschreven in binaire weergave, met toevoeging van voorloopnullen tot lengte 4, en de som van de elementen modulo 2 wordt toegevoegd aan de resulterende reeks (als we bijvoorbeeld 23 verzenden, krijgen we een reeks) . Bepaal welk nummer over het kanaal is verzonden als?

7. Om de letters O, H, B, A, K te coderen, worden binaire codes van respectievelijk de cijfers 0, 1, 2, 3 en 4 gebruikt (met behoud van één onbeduidende nul in het geval van een weergave van één cijfer). Als u op deze manier een reeks tekens codeert
ZABACHOK en noteer het resultaat in hexadecimale code, je krijgt:

1) 5434DA4 3) ABCD

8. Om een ​​bericht over het communicatiekanaal te verzenden, dat alleen bestaat uit de letters A, B, C, D, is besloten een code te gebruiken die ongelijk is in lengte: A = 01, B = 1, C = 001. Hoe te coderen?
letter Г, zodat de lengte van de code minimaal is en het eenduidig ​​opsplitsen van het gecodeerde bericht in letters is toegestaan?

9. Om een ​​bericht te verzenden via een communicatiekanaal, dat alleen bestaat uit de letters A, B, C, D, werd besloten een code te gebruiken die ongelijk van lengte is: A = 0, B = 100, C = 110. Hoe moet de letter G worden gecodeerd zodat de lengte van de code minimaal is en het eenduidig ​​opsplitsen van het gecodeerde bericht in letters is toegestaan?

De werking van elektronische computers voor gegevensverwerking is een belangrijke fase geworden in het proces van verbetering van controle- en planningssystemen. Maar deze methode voor het verzamelen en verwerken van informatie verschilt enigszins van de gebruikelijke, daarom vereist het transformatie in een systeem van symbolen dat een computer kan begrijpen.

Wat is informatiecodering?

Het coderen van gegevens is een verplichte stap in het proces van het verzamelen en verwerken van informatie.

In de regel betekent een code een combinatie van tekens die overeenkomt met de verzonden gegevens of enkele van hun kwalitatieve kenmerken. En codering is het proces van het samenstellen van een gecodeerde combinatie in de vorm van een lijst met afkortingen of speciale tekens die de oorspronkelijke betekenis van het bericht volledig weergeven. Versleuteling wordt soms ook versleuteling genoemd, maar het is de moeite waard om te weten dat de laatste procedure inhoudt dat gegevens worden beschermd tegen hacken en lezen door derden.

Het doel van codering is om informatie in een handig en beknopt formaat te presenteren om verzending en verwerking op computerapparatuur te vergemakkelijken. Computers werken alleen met informatie van een bepaalde vorm, dus het is zo belangrijk om dit niet te vergeten om problemen te voorkomen. Het schematische diagram van gegevensverwerking omvat zoeken, sorteren en ordenen, en codering vindt daarin plaats in het stadium van het invoeren van informatie in de vorm van een code.

Wat is informatiedecodering?

De vraag wat coderen en decoderen is, kan om verschillende redenen bij een pc-gebruiker ontstaan, maar het is in ieder geval belangrijk om correcte informatie over te brengen, zodat de gebruiker met succes verder kan in de stroom van informatietechnologie. Zoals u zich kunt voorstellen, wordt na het verwerken van de gegevens de uitvoercode verkregen. Als zo'n fragment wordt ontcijferd, wordt de initiële informatie gevormd. Dat wil zeggen, decoderen is het tegenovergestelde van encryptie.

Als tijdens het coderen de gegevens de vorm aannemen van symbolische signalen die volledig overeenkomen met het verzonden object, dan worden tijdens het decoderen de verzonden informatie of enkele van zijn kenmerken uit de code verwijderd.

Er kunnen meerdere ontvangers van versleutelde berichten zijn, maar het is van groot belang dat de informatie in hun handen valt en niet eerder door derden wordt bekendgemaakt. Daarom is het de moeite waard om de processen van het coderen en decoderen van informatie te bestuderen. Ze helpen om vertrouwelijke informatie uit te wisselen tussen een groep gesprekspartners.

Coderen en decoderen van tekstinformatie

Wanneer u op een klaviertoets drukt, ontvangt de computer een signaal in de vorm van een binair getal, waarvan de decodering te vinden is in de codetabel - de interne weergave van tekens in een pc. De ASCII-tabel wordt over de hele wereld als de standaard beschouwd.

Het is echter niet voldoende om te weten wat coderen en decoderen is, u moet ook begrijpen hoe de gegevens zich op een computer bevinden. Om bijvoorbeeld één symbool van een binaire code op te slaan, wijst een elektronische computer 1 byte toe, dat wil zeggen 8 bits. Deze cel kan maar twee waarden aannemen: 0 en 1. Het blijkt dat je met één byte 256 verschillende karakters kunt versleutelen, omdat dit het aantal combinaties is dat gemaakt kan worden. Deze combinaties vormen het belangrijkste onderdeel van de ASCII-tabel. De letter S is bijvoorbeeld gecodeerd als 01010011. Wanneer u erop drukt op het toetsenbord, worden de gegevens gecodeerd en gedecodeerd en krijgen we het verwachte resultaat op het scherm.

De helft van de tabel met ASCII-normen bevat codes voor cijfers, controletekens en Latijnse letters. Een ander deel ervan is gevuld met nationale tekens, pseudografische tekens en symbolen die niets met wiskunde te maken hebben. Het is duidelijk dat dit deel van de tabel van land tot land zal verschillen. Cijfers worden ook omgezet naar binair als ze worden ingevoerd, volgens het standaardoverzicht.

Nummercodering

Een vergelijkbare methode voor het coderen van beeldpunten wordt gebruikt in de grafische industrie. Alleen hier is het gebruikelijk om de vierde kleur te gebruiken - zwart. Om deze reden wordt het printconversiesysteem afgekort als CMYK. Dit systeem gebruikt maar liefst tweeëndertig binaire bits om afbeeldingen weer te geven.

Methoden voor het coderen en decoderen van informatie gaan uit van het gebruik van verschillende technologieën, afhankelijk van het type invoergegevens. Grafische afbeeldingen met zestien-bits binaire codes worden bijvoorbeeld High Color genoemd. Deze technologie maakt het mogelijk om maar liefst tweehonderdzesenvijftig tinten op het scherm over te brengen. Door het aantal betrokken bits te verminderen dat wordt gebruikt om de punten van een grafische afbeelding te coderen, vermindert u automatisch de hoeveelheid ruimte die nodig is voor tijdelijke opslag van informatie. Deze methode van gegevenscodering wordt meestal index genoemd.

Audiocodering

Nu we hebben onderzocht wat codering en decodering zijn, en de methoden die aan dit proces ten grondslag liggen, is het de moeite waard om stil te staan ​​bij een vraag als het coderen van audiogegevens.

Geluidsinformatie kan worden gepresenteerd in de vorm van elementaire eenheden en pauzes tussen elk paar ervan. Elk signaal wordt omgezet en opgeslagen in het geheugen van de computer. Geluiden worden uitgevoerd met behulp waarvan gecodeerde combinaties die in het pc-geheugen zijn opgeslagen, worden gebruikt.

Wat betreft menselijke spraak, het is veel moeilijker om het te coderen, omdat het wordt onderscheiden door een verscheidenheid aan tinten, en de computer elke zin moet vergelijken met de standaard die eerder in zijn geheugen is ingevoerd. Erkenning vindt alleen plaats wanneer het gesproken woord in het woordenboek wordt gevonden.

Binaire codering van informatie

Er zijn verschillende technieken om een ​​dergelijke procedure te implementeren, zoals het coderen van numerieke, tekstuele en grafische informatie. Gegevensdecodering volgt meestal de omgekeerde technologie.

Bij het coderen van getallen wordt zelfs rekening gehouden met het doel waarvoor het cijfer in het systeem is ingevoerd: voor rekenkundige berekeningen of gewoon voor uitvoer. Alle gegevens die in binair zijn gecodeerd, worden versleuteld met enen en nullen. Deze karakters worden ook wel bits genoemd. Deze coderingsmethode is het populairst, omdat het technologisch het gemakkelijkst te organiseren is: signaalaanwezigheid - 1, afwezigheid - 0. Binaire codering heeft slechts één nadeel: de lengte van tekencombinaties. Maar vanuit technisch oogpunt is het gemakkelijker om een ​​aantal eenvoudige, vergelijkbare componenten te hanteren dan een klein aantal meer complexe.

Voordelen van binaire codering

  • Deze vorm van informatiepresentatie is geschikt voor verschillende soorten informatie.
  • Er treedt geen fout op tijdens de gegevensoverdracht.
  • Het is veel gemakkelijker voor een pc om op deze manier gecodeerde gegevens te verwerken.
  • Apparaten met twee statussen zijn vereist.

Nadelen van binaire codering

  • Grote lengte van codes, wat de verwerking enigszins vertraagt.
  • Moeite met het waarnemen van binaire combinaties door een persoon zonder speciale opleiding of training.

Conclusie

Na het lezen van dit artikel heb je kunnen ontdekken wat coderen en decoderen is en waarvoor het wordt gebruikt. Geconcludeerd kan worden dat de gebruikte datatransformatietechnieken volledig afhankelijk zijn van het type informatie. Het kan niet alleen tekst zijn, maar ook cijfers, afbeeldingen en geluid.

Codering van verschillende informatie maakt het mogelijk om de vorm van de presentatie te verenigen, dat wil zeggen om het hetzelfde type te maken, wat de verwerking en automatisering van gegevens tijdens verder gebruik aanzienlijk versnelt.

In elektronische computers worden de principes van standaard binaire codering het vaakst gebruikt, die de oorspronkelijke vorm van informatierepresentatie omzet in een formaat dat handiger is voor opslag en verdere verwerking. Bij het decoderen vinden alle processen in omgekeerde volgorde plaats.

Maar je kunt het niet met een stem op iedereen overbrengen. Daarom was het moment van gegevenscodering lange tijd belangrijk, zodat ze konden worden gelezen door degenen voor wie het bedoeld was. Geleidelijk aan werd hun encryptie ook relevant. Het was noodzakelijk om de berichtinformatie in te voeren die voor henzelf begrijpelijk was en de betekenis niet aan vreemden onthulde. We zullen over dit alles praten om erachter te komen wat codering en decodering zijn.

De terminologie begrijpen

Je kunt niet zonder. Als ze het hebben over gecodeerde tekst, betekent dit dat er een andere reeks tekens aan was gekoppeld. Dit kan gebruikt worden om de betrouwbaarheid te vergroten, of om de simpele reden dat een kanaal maar een beperkt aantal karakters kan gebruiken. De binaire code waar moderne computers op draaien, is bijvoorbeeld opgebouwd rond enen en nullen.

Informatie kan worden gecodeerd in bepaalde tekens en om deze op te slaan. Een voorbeeld zijn de resultaten van analyses, die indicatoren van het menselijk lichaam bevatten. Maar de meest populaire vraag is: "Wat is coderen en decoderen in de informatica?" We gaan er een antwoord op zoeken.

Over de betekenis

Voorheen speelde het proces van het coderen en decoderen van informatie een ondersteunende rol en werd het niet beschouwd als een apart gebied van wiskunde. Maar met de komst van elektronische computers is de situatie aanzienlijk veranderd. Nu is codering een centrale kwestie bij het oplossen van een breed scala aan praktische problemen bij het programmeren en doordringt daarom alle informatietechnologie. Dus, gebruik het:

  1. Informatie wordt beschermd tegen onbevoegde toegang.
  2. Biedt ruisimmuniteit tijdens verzending via datacommunicatiekanalen.
  3. Informatie van willekeurige aard (grafieken, tekst, cijfers) in het computergeheugen wordt weergegeven.
  4. De inhoud van de databases is gecomprimeerd.

Over het alfabet

Praten over wat coderen en decoderen is, het is moeilijk om de basis van dit alles te negeren. Namelijk het alfabet. Er zijn twee soorten: bron en code. De eerste bevat de eerste informatie. Gecodeerde gegevens zijn gewijzigde gegevens, die echter, indien een sleutel aanwezig is, versleutelde inhoud naar ons kunnen verzenden. In de informatica wordt hiervoor binaire code gebruikt, die is gebaseerd op een alfabet bestaande uit nul en één.

Laten we een snel voorbeeld nemen. Laten we zeggen dat we twee alfabetten hebben (A en B), die uit een eindig aantal tekens bestaan. Laten we zeggen dat ze er zo uitzien: A = (A0, A1, A2… .A33), B = (B0, B1, B3… B34). De elementen van het alfabet zijn letters. Terwijl hun geordende verzameling een woord wordt genoemd. Het heeft een bepaalde lengte. De eerste letter van een woord wordt de start (prefix) genoemd, terwijl de laatste letter het einde (postfix) wordt genoemd. Er kunnen verschillende regels zijn voor het bouwen van constructies. Sommige informatiecoderingssystemen vereisen bijvoorbeeld dat er een opening tussen woorden is, terwijl andere dat niet doen. Over het algemeen is het alfabet nodig om een ​​universeel systeem te bouwen voor het weergeven, opslaan, verwerken en verzenden van informatie. In dit geval wordt gezorgd voor een bepaalde overeenkomst tussen verschillende signalen en elementen van berichten die daarin zijn versleuteld.

Werken met gegevens

Wanneer informatie wordt omgezet in de oorspronkelijke vorm, wordt het proces dat tijdens dit proces plaatsvindt decodering genoemd. Het moet worden uitgevoerd met betrekking tot alle gegevens die zijn versleuteld. In dit geval wordt de zogenaamde inverse mapping (bijectie) gebruikt. Laten we eens kijken naar de situatie met een binair systeem. Al haar codewoorden hebben dezelfde lengte. Daarom wordt de code uniform (blok) genoemd. In dit geval fungeert een bepaalde substitutie als coderingsfunctie. Neem het bovenstaande alfabetsysteem als voorbeeld. Veel elementaire codes worden gebruikt om bepaalde reeksen aan te duiden.

Laten we zeggen dat we A0 = (A, B, C, D) en B0 = (1, 0) hebben. Hoe kan dit aan een computer worden gepresenteerd? En met deze reeks: A = 00, B = 01, C = 10, D = 11. Zoals je kunt zien, heeft elk teken een bepaalde codering. Referentie-informatie over het coderingsalfabet wordt ingevoerd in computerapparatuur en het begint te wachten op binnenkomende signalen. Nul komt, gevolgd door een andere - ja, dus dit is de letter A. Als we parallellen trekken met de reeks woorden in een teksteditor, dan moet worden opgemerkt dat niet alleen één letter wordt verzonden, maar de bijbehorende reactie erop zal ook gelanceerd worden. Er gaat bijvoorbeeld een bepaalde reeks monitor-LED's branden, waar alle ingevoerde tekens worden weergegeven.

Werkspecificaties

Sprekend over voorbeelden van codering en decodering van informatie, moet worden opgemerkt dat het systeem in kwestie niet één-op-één is. De letter A kan bijvoorbeeld overeenkomen met een combinatie van niet alleen 00, maar ook 11, 10 of 01. Houd er echter rekening mee dat er maar één ding kan zijn. Dat wil zeggen dat alleen een bepaald symbool aan een combinatie wordt toegewezen. Als een coderingsschema de verdeling van een woord in elementaire componenten impliceert, wordt het scheidbaar genoemd. In gevallen waarin een letter niet fungeert als het begin van een andere, is dit de prefix-benadering. Dit geldt voor problemen met software- en hardwarecomponenten. De architectuur heeft ook een zekere invloed op de codering, maar door het grote aantal implementatiemogelijkheden is het nogal problematisch om daar rekening mee te houden.

Letter-voor-letter codering

Dit is de meest directe benadering. Als we het hebben over informatiecoderingstalen, dan is dit misschien de meest populaire optie. In een beperkte versie werd het hierboven besproken. Laten we eens kijken hoe de code eruitziet zonder scheidingstekens. Laten we zeggen dat we een alfabet hebben (origineel), waarin alle Russische letters zijn geplaatst. Decimale cijfers worden gebruikt voor codering. Hier A = 1 en I = 33. De reeks letters АЯЯА kan dus worden weergegeven als 133331. Als er een wens is om het alfabet uniform te maken, dan is het noodzakelijk om bepaalde wijzigingen aan te brengen. Dus voor de eerste negen letters moet je nul optellen. En het door ons overwogen voorbeeld van de ANYA verandert in 01333301.

ongelijke codering

De eerder overwogen optie wordt als handig beschouwd. Maar in bepaalde gevallen is het slimmer om op ongelijke codes in te zetten. Dit is logisch wanneer verschillende letters in de originele tekst met verschillende frequenties voorkomen. Daarom is het logisch om frequentere karakters te coderen met korte aanduidingen en zeldzame karakters met lange. Laten we een binaire boom bouwen van de letters van het Russische alfabet. En voor de toevoeging nemen we speciale tekens. De letters worden het vaakst gebruikt, dus we beginnen ermee: A - 0, B - 1, C - 10, D - 11, enzovoort. En pas daarna zullen de vraagtekens, percentages, dubbele punten en andere worden gebruikt. Hoewel je misschien in de eerste plaats nog steeds komma's en punten moet plaatsen.

Op de Fano-conditie

De stelling stelt dat elke code (prefix en uniform) de mogelijkheid van ondubbelzinnige codering toelaat. Laten we zeggen dat we het eerder besproken voorbeeld gebruiken met 01333301. We gaan naar rechts. 0 geeft ons niets. Maar met 01 kunt u de letter A identificeren. Laten we de begincode iets wijzigen en deze weergeven als 01 333301. Vervolgens selecteren we de eerste I, de tweede en nog een A. Als resultaat hebben we 01 33 33 01. Hoewel de originele code is samengevoegd, maar nu kunnen we het met gemak decoderen omdat we weten wat er in zit. Namelijk - En ik ben A. Merk tegelijkertijd op dat het altijd ondubbelzinnig wordt ontcijferd en dat er geen interpretaties zijn in het kader van het aangenomen systeem, waardoor het mogelijk is om een ​​hoge betrouwbaarheid van de verzonden informatie te garanderen. Maar hoe werken computers?

De werking van elektronische computers

Het coderen en decoderen van computersignalen is gebaseerd op het gebruik van zogenaamde lage en hoge signalen, die overeenkomen met nul en één in de logische dimensie. Wat betekent het? Laten we zeggen dat we een microcontroller hebben. Als een van de ingangen een lage spanning van 1,5 V krijgt, wordt aangenomen dat er een logische nulwaarde is verzonden. Maar als 5 V wordt verzonden, wordt er een naar de bijbehorende geheugencel geschreven. In dit geval is het noodzakelijk om overeenstemming te bereiken tussen de informatiebron en het communicatiekanaal. Over het algemeen moet bij het maken van elektronica rekening worden gehouden met een groot aantal verschillende punten. Dit zijn de energiebehoeften, het type verzonden informatie (discreet of continu), en nog veel meer. In dit geval moeten de gegevens voortdurend zodanig worden getransformeerd dat ze via communicatiekanalen kunnen worden verzonden. In het geval van binaire technologie worden signalen dus gepresenteerd in de vorm van een spanning die wordt toegepast op de ingang van transistors of andere componenten. Tijdens het decoderen vertalen de gegevens het bericht naar een voor de ontvanger begrijpelijke vorm.

Minimale redundantie

In de praktijk is het van groot belang gebleken dat de berichtcode een minimale lengte heeft. In eerste instantie lijkt het misschien wat het verschil is - zes, acht of zestien bits worden gebruikt voor codering? Maar de verschillen zijn onbeduidend als één woord wordt gebruikt. En als miljarden? Gelukkig kun je de alfabetische codering aanpassen aan alle gestelde eisen. Maar als er niets bekend is over de set, dan is het nogal moeilijk om het optimalisatieprobleem te formuleren. Maar in de praktijk kunt u in de regel nog steeds aanvullende informatie krijgen. Laten we een klein voorbeeld bekijken. Laten we zeggen dat we een boodschap in natuurlijke taal hebben. Maar het is gecodeerd en we kunnen het niet lezen. Wat zal ons helpen bij de decoderingstaak? Een van de mogelijke opties is een vel papier waarop de waarschijnlijkheid van het verschijnen van de letters wordt verdeeld. Hierdoor wordt de constructie van een optimale code in termen van de / codering mogelijk met behulp van een exacte wiskundige formulering en een rigoureuze oplossing.

Laten we een voorbeeld analyseren

Laten we zeggen dat we een bepaald scheidbaar alfabetisch coderingsschema hebben. Dan hebben alle afgeleiden die een geordende verzameling vertegenwoordigen ook deze eigenschap. Bovendien, als de lengte van de elementaire codes gelijk is, heeft hun permutatie geen invloed op de lengte van het hele bericht. Maar als de grootte van de verzonden informatie direct afhangt van de volgorde van letters, dan betekent dit dat componenten van verschillende lengtes zijn gebruikt. Bovendien, als er een specifiek bericht en het coderingsschema is, is het mogelijk om een ​​dergelijke oplossing voor het probleem te kiezen wanneer de lengte minimaal is. Hoe kan dit worden bereikt? Laten we eens kijken naar een benadering met behulp van een algoritme voor het toewijzen van elementaire codes, waarmee we de oplossing van het efficiëntieprobleem effectief kunnen benaderen:

  1. De letters moeten worden gesorteerd in aflopende volgorde van kwantitatief voorkomen.
  2. Het is noodzakelijk om de elementaire codes in volgorde van toenemende lengte te plaatsen.
  3. En als conclusie is het noodzakelijk om de componenten in de optimale volgorde te plaatsen, zodat de meest voorkomende tekens de minste ruimte innemen.

Over het algemeen is het systeem ongecompliceerd. Als je met kleine hoeveelheden data werkt. Maar met moderne computers is dit nogal problematisch om te implementeren vanwege de aanzienlijke hoeveelheid informatie.

Conclusie

Dus hebben we onderzocht wat een systeem voor het coderen en decoderen van informatie is, wat het kan zijn, wat er nu bestaat in de informatica, en nog vele andere zaken. Maar toch moet worden begrepen dat dit onderwerp buitengewoon omvangrijk is, hiervoor is één artikel niet genoeg. Als vervolg op het onderwerp kunt u gegevenscodering, cryptografie, het wijzigen van de weergave van informatie in verschillende elektronica, de verwerkingsniveaus en vele andere punten overwegen. Maar het gebied van informatica wordt terecht als een van de moeilijkste beschouwd, dus het zal niet mogelijk zijn om dit allemaal snel te bestuderen. Bovendien is theoretische kennis hier oh hoe niet gelijk aan praktische vaardigheden. Deze laatste zorgen namelijk voor een kwalitatief hoogstaand resultaat.