Decodering van de binaire code online. Binaire codeweergave met drijvende komma

Het resultaat is al binnen!

Cijferstelsels

Er zijn positionele en niet-positionele nummersystemen. Het Arabische cijfersysteem dat we in het dagelijks leven gebruiken, is positioneel, maar het Romeinse niet. In positionele nummeringssystemen bepaalt de positie van een getal op unieke wijze de grootte van het getal. Laten we dit bekijken met het decimale getal 6372 als voorbeeld. Laten we dit getal van rechts naar links opsommen, beginnend bij nul:

Dan kan het nummer 6372 als volgt worden weergegeven:

6372 = 6000 + 300 + 70 + 2 = 6 · 10 3 + 3 · 10 2 + 7 · 10 1 + 2 · 10 0.

Het getal 10 definieert het nummersysteem (in dit geval is het 10). De waarden van de positie van het gegeven nummer worden als graden genomen.

Beschouw het echte decimale getal 1287.923. Laten we het nummeren vanaf de nulpositie van het getal vanaf de komma naar links en naar rechts:

Dan kan het getal 1287.923 worden weergegeven als:

1287.923 = 1000 + 200 + 80 + 7 + 0,9 + 0,02 + 0,003 = 1 · 10 3 + 2 · 10 2 + 8 · 10 1 + 7 · 10 0 + 9 · 10 -1 + 2 · 10 -2 + 3 · 10 -3.

In het algemeen kan de formule als volgt worden weergegeven:

C n s n + C n-1 s n-1 + ... + C 1 s 1 + D 0 s 0 + D -1 s -1 + D -2 s -2 + ... + D -k s -k

waarbij Ц n een geheel getal is in positie N, Д -k - fractioneel getal in positie (-k), s- nummersysteem.

Een paar woorden over getalstelsels Het getal in het decimale getalstelsel bestaat uit vele cijfers (0,1,2,3,4,5,6,7,8,9), in het octale getalstelsel - uit de verzameling van getallen (0,1, 2,3,4,5,6,7), in het binaire getallenstelsel - uit de reeks cijfers (0,1), in het hexadecimale getallenstelsel - uit de reeks getallen (0, 1,2,3,4,5,6, 7,8,9, A, B, C, D, E, F), waarbij A, B, C, D, E, F overeenkomen met de nummers 10,11 ,12,13,14,15.getallen in verschillende nummerstelsels worden gepresenteerd.

tafel 1
notatie
10 2 8 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 EEN
11 1011 13 B
12 1100 14 C
13 1101 15 NS
14 1110 16 E
15 1111 17 F

Getallen converteren van het ene nummersysteem naar het andere

Om getallen van het ene getalsysteem naar het andere te converteren, is de eenvoudigste manier om eerst het getal naar het decimale getalsysteem te converteren en het vervolgens vanuit het decimale getalsysteem te vertalen in het vereiste getalsysteem.

Getallen converteren van elk willekeurig getalsysteem naar het decimale getalsysteem

Met formule (1) kunt u getallen van elk willekeurig getalstelsel naar het decimale getalstelsel converteren.

Voorbeeld 1. Converteer het getal 1011101.001 van binaire notatie (SS) naar decimale SS. Oplossing:

1 2 6 +0 2 5 + 1 · 2 4 + 1 · 2 3 + 1 · 2 2 + 0 · 2 1 + 1 2 0 + 0 2 -1 + 0 2 -2 + 1 2 -3 = 64 + 16 + 8 + 4 + 1 + 1/8 = 93.125

Voorbeeld2. Converteer 1011101.001 van octaal getalsysteem (SS) naar decimale SS. Oplossing:

Voorbeeld 3 ... Converteer het getal AB572.CDF van hexadecimale basis naar decimale SS. Oplossing:

Hier EEN-vervangen door 10, B- om 11 uur, C- om 12 uur, F- voor 15.

Getallen converteren van een decimaal getalsysteem naar een ander getalsysteem

Om getallen van het decimale getalsysteem naar een ander getalsysteem te converteren, moet je het gehele deel van het getal en het fractionele deel van het getal afzonderlijk vertalen.

Het gehele deel van het getal wordt geconverteerd van de decimale SS naar een ander getalsysteem - door het gehele deel van het getal opeenvolgend te delen door de basis van het getallenstelsel (voor een binaire SS - door 2, voor een 8-ary SS - door 8, voor een 16-ary - bij 16, enz.) ) totdat een heel residu is verkregen, minder dan de basis CC.

Voorbeeld 4 ... Laten we het getal 159 converteren van decimale SS naar binaire SS:

159 2
158 79 2
1 78 39 2
1 38 19 2
1 18 9 2
1 8 4 2
1 4 2 2
0 2 1
0

Zoals blijkt uit afb. 1, geeft het getal 159 bij deling door 2 het quotiënt 79 en de rest 1. Verder geeft het getal 79 bij deling door 2 het quotiënt 39 en de rest 1, enzovoort. Als gevolg hiervan krijgen we, nadat we een getal hebben opgebouwd uit de rest van de deling (van rechts naar links), het getal in de binaire SS: 10011111 ... Daarom kunnen we schrijven:

159 10 =10011111 2 .

Voorbeeld 5 ... Laten we het getal 615 omzetten van decimale SS naar octale SS.

615 8
608 76 8
7 72 9 8
4 8 1
1

Bij het converteren van een getal van decimale SS naar octale SS, moet je het getal achtereenvolgens delen door 8 totdat je een hele rest krijgt die kleiner is dan 8. Als resultaat, bouw je het getal op uit de resten van de deling (van rechts naar links), we krijgen het nummer in octale SS: 1147 (zie afb. 2). Daarom kunnen we schrijven:

615 10 =1147 8 .

Voorbeeld 6 ... Converteer het getal 19673 van decimaal naar hexadecimaal SS.

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

Zoals te zien is in figuur 3, verkregen we door 19673 achtereenvolgens te delen door 16, de resten 4, 12, 13, 9. In het hexadecimale systeem komt het getal 12 overeen met C en het getal 13 komt overeen met D. Daarom is onze hexadecimaal getal is 4CD9.

Om correcte decimale breuken (een reëel getal met een geheel getal nul) om te zetten naar het grondtal s, moet dit getal opeenvolgend worden vermenigvuldigd met s totdat een zuivere nul wordt verkregen in het breukdeel, of we krijgen het vereiste aantal cijfers. Als de vermenigvuldiging resulteert in een getal dat niet nul is met een geheel getal, wordt dit gehele deel niet meegerekend (ze worden opeenvolgend bij het resultaat opgeteld).

Laten we het bovenstaande met voorbeelden bekijken.

Voorbeeld 7 ... Converteer het getal 0.214 van decimaal naar binair SS.

0.214
x 2
0 0.428
x 2
0 0.856
x 2
1 0.712
x 2
1 0.424
x 2
0 0.848
x 2
1 0.696
x 2
1 0.392

Zoals te zien is in figuur 4, wordt het getal 0.214 sequentieel vermenigvuldigd met 2. Als de vermenigvuldiging resulteert in een niet-nul getal met een geheel getal, dan wordt het gehele getal apart geschreven (links van het getal) en het getal wordt geschreven met een geheel getal nul. Als bij vermenigvuldiging een getal met een geheel getal nul wordt verkregen, wordt nul links ervan geschreven. Het vermenigvuldigingsproces gaat door totdat een zuivere nul wordt verkregen in het fractionele deel, of het vereiste aantal cijfers is verkregen. Door vetgedrukte getallen (Fig. 4) van boven naar beneden op te schrijven, krijgen we het vereiste getal in het binaire getalsysteem: 0. 0011011 .

Daarom kunnen we schrijven:

0.214 10 =0.0011011 2 .

Voorbeeld 8 ... Laten we het getal 0.125 van het decimale getalsysteem converteren naar de binaire SS.

0.125
x 2
0 0.25
x 2
0 0.5
x 2
1 0.0

Om het getal 0.125 van decimaal SS naar binair om te zetten, wordt dit getal opeenvolgend vermenigvuldigd met 2. In de derde fase bleek het 0. Daarom werd het volgende resultaat verkregen:

0.125 10 =0.001 2 .

Voorbeeld 9 ... Laten we het getal 0.214 omzetten van decimaal naar hexadecimaal SS.

0.214
x 16
3 0.424
x 16
6 0.784
x 16
12 0.544
x 16
8 0.704
x 16
11 0.264
x 16
4 0.224

Als we voorbeelden 4 en 5 volgen, krijgen we de nummers 3, 6, 12, 8, 11, 4. Maar in de hexadecimale SS komen de nummers 12 en 11 overeen met de nummers C en B. Daarom hebben we:

0,214 10 = 0,36C8B4 16.

Voorbeeld 10 ... Decimaal naar decimaal converteren SS-nummer 0,512.

0.512
x 8
4 0.096
x 8
0 0.768
x 8
6 0.144
x 8
1 0.152
x 8
1 0.216
x 8
1 0.728

Gekregen:

0.512 10 =0.406111 8 .

Voorbeeld 11 ... Het getal 159.125 omzetten van decimaal naar binair SS. Om dit te doen, vertalen we afzonderlijk het gehele deel van het getal (voorbeeld 4) en het fractionele deel van het getal (voorbeeld 8). Verder, als we deze resultaten combineren, krijgen we:

159.125 10 =10011111.001 2 .

Voorbeeld 12 ... Het getal 19673.214 omzetten van decimaal naar hexadecimaal SS. Om dit te doen, vertalen we afzonderlijk het gehele deel van het getal (voorbeeld 6) en het fractionele deel van het getal (voorbeeld 9). Verder, als we deze resultaten combineren, krijgen we.

U kunt gebruik maken van standaard software van het Microsoft Windows besturingssysteem. Open hiervoor het menu "Start" op uw computer, klik in het menu dat verschijnt op "Alle programma's", selecteer de map "Standaard" en zoek de toepassing "Calculator" erin. Selecteer in het hoofdmenu van de rekenmachine "Bekijken" en vervolgens "Programmer". De vorm van de rekenmachine wordt geconverteerd.

Voer nu het te vertalen nummer in. In een speciaal venster onder het invoerveld ziet u het resultaat van de vertaling van de cijfercode. Dus, bijvoorbeeld, na het invoeren van het getal 216, krijg je het resultaat 1101 1000.

Als je geen computer of smartphone bij de hand hebt, kun je zelf een getal proberen dat in Arabische cijfers is geschreven in binaire code. Om dit te doen, moet u het getal constant door 2 delen totdat de laatste rest overblijft of het resultaat nul bereikt. Het ziet er zo uit (bijvoorbeeld het getal 19):

19: 2 = 9 - rest 1
9: 2 = 4 - rest 1
4: 2 = 2 - rest 0
2: 2 = 1 - rest 0
1: 2 = 0 - bereikt 1 (het deeltal is kleiner dan de deler)

Schrijf de rest in de tegenovergestelde richting - van de allerlaatste tot de allereerste. U krijgt het resultaat 10011 - dit is het nummer 19 in.

Om een ​​fractioneel decimaal getal naar het systeem te converteren, moet u eerst het gehele deel van het fractionele getal naar het binaire getalsysteem converteren, zoals in het bovenstaande voorbeeld. Dan moet je het fractionele deel van het gebruikelijke getal vermenigvuldigen met de basis van het binaire getal. Als resultaat van het product is het noodzakelijk om het hele onderdeel te selecteren - het neemt de waarde van het eerste cijfer van het nummer naar het systeem achter de komma. De finale van het algoritme vindt plaats wanneer het fractionele deel van het product verdwijnt, of als de vereiste rekennauwkeurigheid wordt bereikt.

bronnen:

  • Vertaalalgoritmen op Wikipedia

Naast het gebruikelijke decimale getalsysteem in de wiskunde, zijn er veel andere manieren om getallen weer te geven, waaronder: het formulier... Hiervoor worden slechts twee tekens gebruikt, 0 en 1, wat het binaire systeem handig maakt bij gebruik in verschillende digitale apparaten.

instructies:

Systemen in zijn ontworpen om getallen symbolisch weer te geven. In de gebruikelijke wordt voornamelijk het decimale systeem gebruikt, wat erg handig is voor berekeningen, ook in het hoofd. In de wereld van digitale apparaten, waaronder de computer, die nu voor velen een tweede thuis is geworden, zijn octaal en hexadecimaal de meest voorkomende, en afnemende populariteit.

Deze vier systemen hebben één ding gemeen: ze zijn positioneel. Dit betekent dat de betekenis van elk cijfer in het laatste getal afhangt van de positie waarin het zich bevindt. Vandaar het concept van bitdiepte, in binaire vorm, de eenheid van bitbreedte is het getal 2, in - 10, enz.

Er zijn algoritmen voor het overbrengen van nummers van het ene systeem naar het andere. Deze methoden zijn eenvoudig en vereisen niet veel kennis, maar het ontwikkelen van deze vaardigheden vereist enige behendigheid, die door oefening kan worden verkregen.

Het converteren van een getal van een ander getalsysteem naar kan op twee mogelijke manieren: door iteratief te delen door 2 of door elk afzonderlijk cijfer van een getal in de vorm van vier tekens te schrijven, wat tabelwaarden zijn, maar onafhankelijk kunnen worden gevonden vanwege hun eenvoud.

Gebruik de eerste methode om een ​​decimaal getal naar binair te converteren. Dit is des te handiger omdat het gemakkelijker is om met decimale getallen in je hoofd te werken.

Zet bijvoorbeeld 39 om in binair. Deel 39 door 2 - je krijgt 19 en 1 rest. Doe nog een paar iteraties van deling door 2 totdat het uiteindelijk gelijk is aan nul, en schrijf in de tussentijd de tussenliggende resten in de string van rechts naar links. De laatste reeks enen en nullen is uw getal in binair getal: 39/2 = 19 → 1; 19/2 = 9 → 1; 9/2 = 4 → 1; 4/2 = 2 → 0; 2/2 = 1 → 0; 1/2 = 0 → 1 Dus we hebben het binaire getal 111001.

Om een ​​getal uit de grondtalen 16 en 8 te binaryiseren, zoekt of maakt u de tabellen met de bijbehorende aanduidingen voor elk digitaal en symbolisch element van deze systemen. Namelijk: 0 0000, 1 0001, 2 0010, 3 0011, 4 0100, 5 0101, 6 0110, 7 0111, 8 1000, 9 1001, A 1010, B 1011, C 1100, D 1101, E 1110, F 1111 . ..

Noteer elk cijfer van het oorspronkelijke nummer in overeenstemming met de gegevens in deze tabel. Voorbeelden: Octaal getal 37 = = 00110111 in binair; Hexadecimaal getal 5FEB12 = = 010111111110101100010010 systeem.

Gerelateerde video's

Sommige niet-geheel getal de nummers kan in decimale notatie worden geschreven. In dit geval, na de komma die het hele deel van elkaar scheidt de nummers, er is een bepaald aantal cijfers dat het niet-gehele deel kenmerkt de nummers... In verschillende gevallen is het handig om een ​​van beide decimalen te gebruiken: de nummers, of fractioneel. Decimale de nummers kan worden omgezet in fractioneel.

Je zal nodig hebben

  • vermogen om breuken te verkleinen

instructies:

Als de noemer 10, 100 of, in het geval, 10 ^ n is, waarbij n een natuurlijk getal is, dan kan de breuk worden geschreven als. Het aantal decimalen bepaalt de noemer van de breuk. Het is gelijk aan 10 ^ n, waarbij n het aantal tekens is. Dus 0,3 kan bijvoorbeeld worden geschreven als 3/10, 0,19 als 19/100, enz.

Als er een of meer nullen aan het einde van de decimale breuk staan, dan kunnen deze nullen worden weggegooid en kan het getal met het resterende aantal decimalen worden omgezet in een breuk. Voorbeeld: 1.7300 = 1.73 = 173/100.

Gerelateerde video's

bronnen:

  • decimale breuken
  • hoe fractioneel te vertalen

De meeste software voor Android is geschreven in de programmeertaal Java (PL). De systeemontwikkelaars bieden programmeurs ook frameworks voor het ontwerpen van applicaties in C/C++, Python en Javascript via de jQuery-bibliotheek en PhoneGap.

Motodev Studio voor Android gebouwd bovenop Eclipse en maakt programmeren rechtstreeks vanuit de Google SDK mogelijk.

Om sommige programma's en codesecties te schrijven, waarvan de uitvoering het maximum vereist, kunnen de C / C++-bibliotheken worden gebruikt. Het gebruik van deze programmeertalen is mogelijk middels een speciaal pakket voor Android Native Development Kit ontwikkelaars, specifiek gericht op het maken van applicaties met C++.

Met Embarcadero RAD Studio XE5 kun je ook native Android-apps schrijven. Tegelijkertijd is één Android-apparaat of een geïnstalleerde emulator voldoende om het programma te testen. De ontwikkelaar wordt ook de mogelijkheid geboden om low-level modules in C/C++ te schrijven door gebruik te maken van enkele standaard Linux-bibliotheken en de voor Android ontwikkelde Bionic-bibliotheek.

Naast C / C ++ kunnen programmeurs C # gebruiken, waarvan de tools handig zullen zijn bij het schrijven van native programma's voor het platform. Werken in C# met Android kan via de Mono of Monotouch interface. Desalniettemin kost de initiële C#-licentie een programmeur $ 400, wat alleen relevant is bij het schrijven van grote softwareproducten.

telefoonkloof

Met PhoneGap kunt u applicaties ontwikkelen met behulp van talen als HTML, JavaScript (jQuery) en CSS. Tegelijkertijd zijn programma's die op dit platform zijn gemaakt, geschikt voor andere operatiekamers en kunnen ze worden aangepast voor andere apparaten zonder aanvullende wijzigingen in de programmacode. Met PhoneGap kunnen Android-ontwikkelaars JavaScript gebruiken om code en HTML te schrijven met CSS om opmaak te genereren.

De SL4A-oplossing maakt het mogelijk om scripttalen schriftelijk te gebruiken. Met behulp van de omgeving is het de bedoeling om programmeertalen als Python, Perl, Lua, BeanShell, JRuby, enz. Niettemin is het aantal ontwikkelaars dat momenteel SL4A voor hun programma's gebruikt klein, en het project bevindt zich nog in de testfase.

bronnen:

  • telefoonkloof

Binaire code is een vorm van het vastleggen van informatie in de vorm van enen en nullen. Dit is positioneel met een basis 2. Tegenwoordig wordt de binaire code (de hieronder weergegeven tabel bevat enkele voorbeelden van het schrijven van getallen) zonder uitzondering in alle digitale apparaten gebruikt. Zijn populariteit is te danken aan de hoge betrouwbaarheid en eenvoud van deze vorm van opnemen. Binaire rekenkunde is heel eenvoudig en daarom gemakkelijk te implementeren op hardwareniveau. componenten (of zoals ze ook wel worden genoemd - logisch) zijn zeer betrouwbaar, omdat ze in slechts twee toestanden werken: een logische eenheid (er is een stroom) en een logische nul (geen stroom). Ze steken dus gunstig af bij analoge componenten, waarvan de werking is gebaseerd op voorbijgaande processen.

Hoe is de binaire notatie opgebouwd?

Laten we eens kijken hoe zo'n sleutel wordt gevormd. Een bit van een binaire code kan slechts twee toestanden bevatten: nul en één (0 en 1). Bij gebruik van twee cijfers wordt het mogelijk om vier waarden te schrijven: 00, 01, 10, 11. Een record van drie cijfers bevat acht toestanden: 000, 001 ... 110, 111. Als resultaat krijgen we dat de lengte van de binaire code is afhankelijk van het aantal cijfers. Deze uitdrukking kan worden geschreven met de volgende formule: N = 2m, waarbij: m het aantal cijfers is en N het aantal combinaties.

Soorten binaire codes

In microprocessors worden dergelijke sleutels gebruikt om een ​​verscheidenheid aan verwerkte informatie vast te leggen. De bitdiepte van een binaire code kan het ingebouwde geheugen aanzienlijk overschrijden. In dergelijke gevallen nemen lange nummers meerdere opslaglocaties in beslag en worden ze met meerdere commando's verwerkt. In dit geval worden alle geheugensectoren die zijn toegewezen voor een multibyte binaire code als één getal beschouwd.

Afhankelijk van de noodzaak om deze of gene informatie te verstrekken, worden de volgende typen sleutels onderscheiden:

  • niet ondertekend;
  • directe integer-tekencodes;
  • ondertekende ruggen;
  • iconisch extra;
  • Grijze code;
  • Gray-Express-code .;
  • fractionele codes.

Laten we elk van hen in meer detail bekijken.

niet-ondertekend binair

Laten we eens kijken wat dit type opname is. In niet-ondertekende integercodes vertegenwoordigt elk cijfer (binair) een macht van twee. In dit geval is het kleinste getal dat in deze vorm kan worden geschreven gelijk aan nul, en het maximum kan worden weergegeven met de volgende formule: M = 2 p -1. Deze twee getallen definiëren volledig het sleutelbereik dat kan worden gebruikt om een ​​dergelijke binaire code uit te drukken. Laten we eens kijken naar de mogelijkheden van de genoemde vorm van registratie. Bij gebruik van dit type niet-ondertekende sleutel, bestaande uit acht bits, is het bereik van mogelijke getallen van 0 tot 255. Een zestien-bits code heeft een bereik van 0 tot 65535. In acht-bits processors worden twee geheugensectoren gebruikt om dergelijke nummers op te slaan en te schrijven, die zich op aangrenzende bestemmingen bevinden ... Het werken met dergelijke toetsen wordt verzorgd door speciale commando's.

Directe integer ondertekende codes

In dit soort binaire sleutels wordt de meest significante bit gebruikt om het teken van een getal vast te leggen. Nul is positief en één is negatief. Als gevolg van de introductie van dit bit wordt het bereik van gecodeerde getallen naar de negatieve kant verschoven. Het blijkt dat een binaire sleutel met een geheel getal van acht bits getallen kan schrijven in het bereik van -127 tot +127. Zestien-bit - in het bereik van -32767 tot +32767. In microprocessors van acht bits worden twee aangrenzende sectoren gebruikt om dergelijke codes op te slaan.

Het nadeel van deze vorm van notatie is dat de getekende en digitale cijfers van de sleutel apart moeten worden verwerkt. De algoritmen van programma's die met deze codes werken zijn zeer complex. Om de tekenbits te wijzigen en te markeren, is het noodzakelijk om maskeringsmechanismen voor dit symbool te gebruiken, wat bijdraagt ​​​​aan een sterke toename van de grootte van de software en een afname van de prestaties. Om dit nadeel op te heffen, werd een nieuw type sleutel geïntroduceerd: een omgekeerde binaire code.

Gesigneerde omgekeerde sleutel

Deze vorm van notatie verschilt alleen van directe codes doordat een negatief getal erin wordt verkregen door alle cijfers van de sleutel om te keren. In dit geval zijn de digitale cijfers en de tekencijfers identiek. Hierdoor zijn de algoritmen voor het werken met dit type code sterk vereenvoudigd. De omgekeerde toets vereist echter een speciaal algoritme om het teken van het eerste cijfer te herkennen, om de absolute waarde van het getal te berekenen. En ook het herstel van het teken van de resulterende waarde. Bovendien worden in omgekeerde en voorwaartse codes van getallen twee toetsen gebruikt om nul te schrijven. Hoewel deze waarde geen positief of negatief teken heeft.

Ondertekend's complement binair getal

Dit type record heeft niet de genoemde nadelen van de vorige sleutels. Dergelijke codes maken directe optelling van zowel positieve als negatieve getallen mogelijk. In dit geval wordt de analyse van de tekenontlading niet uitgevoerd. Dit alles wordt mogelijk gemaakt door het feit dat complementaire getallen een natuurlijke ring van symbolen vertegenwoordigen, geen kunstmatige formaties zoals vooruit- en achteruittoetsen. Bovendien is een belangrijke factor dat het uiterst eenvoudig is om binaire complementberekeningen uit te voeren. Om dit te doen, volstaat het om een ​​eenheid toe te voegen aan de reverse-toets. Bij gebruik van dit type tekencode, bestaande uit acht cijfers, is het bereik van mogelijke getallen van -128 tot +127. Een zestien-bits sleutel heeft een bereik van -32768 tot +32767. In processors van acht bits worden ook twee aangrenzende sectoren gebruikt om dergelijke nummers op te slaan.

Het complement van binair is interessant voor het waargenomen effect, dat het tekenvoortplantingsfenomeen wordt genoemd. Laten we eens kijken wat dit betekent. Dit effect is dat bij het converteren van een waarde van één byte naar een waarde van twee bytes, het voldoende is om elk bit van de hoge byte toe te wijzen aan de waarden van de tekenbits van de lage byte. Het blijkt dat de meest significante bits kunnen worden gebruikt om het ondertekende op te slaan. In dit geval verandert de sleutelwaarde helemaal niet.

Grijze code

Deze vorm van opnemen is in feite een eenstapssleutel. Dat wil zeggen, in het proces van het overgaan van de ene waarde naar de andere, verandert slechts één stukje informatie. In dit geval leidt een fout bij het lezen van de gegevens tot een overgang van de ene positie naar de andere met een kleine verschuiving in de tijd. Het verkrijgen van een volledig onjuist resultaat voor de hoekpositie in een dergelijk proces is echter volledig uitgesloten. Het voordeel van zo'n code is de mogelijkheid om informatie te spiegelen. Door bijvoorbeeld de meest significante bits om te keren, kunt u eenvoudig de richting van het monster veranderen. Dit komt door de Complement-besturingsingang. In dit geval kan de weergegeven waarde met één fysieke draairichting van de as toenemen of afnemen. Aangezien de informatie die is vastgelegd in de grijze sleutel uitsluitend gecodeerd van aard is en geen echte numerieke gegevens bevat, moet deze voor verder werk eerst worden omgezet in de gebruikelijke binaire vorm van notatie. Dit wordt gedaan met behulp van een speciale converter - de Gray-Binar-decoder. Dit apparaat kan eenvoudig worden geïmplementeerd op elementaire logische poorten, zowel in hardware als in software.

Grijze Express-code

De standaard eenstapstoets Grijs is geschikt voor oplossingen die worden weergegeven als getallen, twee. In gevallen waar het nodig is om andere oplossingen te implementeren, wordt alleen het middelste gedeelte uitgesneden en gebruikt van deze vorm van opname. Als gevolg hiervan blijft de eenstapssleutel behouden. In een dergelijke code is het begin van het numerieke bereik echter niet nul. Het wordt verschoven met de opgegeven waarde. Tijdens de gegevensverwerking wordt de helft van het verschil tussen de initiële en verminderde resolutie afgetrokken van de gegenereerde pulsen.

Vaste-komma binaire fractionele representatie

Tijdens het werk moet men niet alleen met hele getallen werken, maar ook met breuken. Dergelijke nummers kunnen worden geschreven met behulp van voorwaartse, achterwaartse en complementaire codes. Het principe van constructie van de genoemde sleutels is hetzelfde als voor gehele getallen. Tot nu toe hebben we aangenomen dat de binaire komma rechts van het minst significante bit moet staan. Maar dit is niet het geval. Het kan zowel links van het meest significante bit (in dit geval kunnen alleen fractionele getallen als variabele worden geschreven) als in het midden van de variabele worden geplaatst (gemengde waarden kunnen worden geschreven).

Binaire codeweergave met drijvende komma

Dit formulier wordt gebruikt om te schrijven, of omgekeerd - erg klein. Een voorbeeld zijn interstellaire afstanden, of de grootte van atomen en elektronen. Bij het berekenen van dergelijke waarden zou men een binaire code moeten gebruiken met een zeer grote bitdiepte. We hoeven echter geen rekening te houden met kosmische afstand tot op de millimeter nauwkeurig. Daarom is de vaste-puntvorm in dit geval niet effectief. Algebraïsche vorm wordt gebruikt om dergelijke codes weer te geven. Dat wil zeggen, het getal wordt geschreven als de mantisse vermenigvuldigd met tien tot de macht die de gewenste volgorde van het getal weergeeft. U moet zich ervan bewust zijn dat de mantisse niet meer dan één mag zijn en dat er geen nul achter de komma mag worden geschreven.

Binaire calculus wordt verondersteld te zijn uitgevonden in het begin van de 18e eeuw door de Duitse wiskundige Gottfried Leibniz. Maar zoals wetenschappers onlangs ontdekten, lang voor het Polynesische eiland, gebruikte Mangareva dit soort rekenkunde. Ondanks het feit dat kolonisatie de oorspronkelijke rekensystemen bijna volledig vernietigde, hebben wetenschappers complexe binaire en decimale vormen van tellen hersteld. Bovendien stelt Cognitieve geleerde Nunez dat binaire codering al in de 9e eeuw voor Christus werd gebruikt in het oude China. NS. Andere oude beschavingen, zoals de Maya-indianen, gebruikten ook complexe combinaties van decimale en binaire systemen om tijdsintervallen en astronomische verschijnselen te volgen.

De set tekens waarmee tekst wordt geschreven heet alfabet.

Het aantal tekens in het alfabet is zijn stroom.

Formule voor het bepalen van de hoeveelheid informatie: N = 2 b,

waarbij N de kardinaliteit van het alfabet is (aantal tekens),

b - aantal bits (informatieve gewicht van het teken).

Het alfabet met een capaciteit van 256 tekens biedt plaats aan bijna alle benodigde tekens. Dit alfabet heet voldoende.

Omdat 256 = 2 8, dan is het gewicht van 1 karakter 8 bits.

De 8-bits eenheid kreeg de naam 1 byte:

1 byte = 8 bits.

De binaire code van elk teken in computertekst neemt 1 byte geheugen in beslag.

Hoe wordt tekstinformatie weergegeven in het computergeheugen?

Het gemak van bytecodering van tekens ligt voor de hand, aangezien een byte het kleinste adresseerbare deel van het geheugen is en daarom kan de processor elk teken afzonderlijk benaderen en tekstverwerking uitvoeren. Aan de andere kant is 256 karakters een voldoende groot aantal om een ​​grote verscheidenheid aan karakterinformatie weer te geven.

Nu rijst de vraag, wat voor soort acht-bits binaire code moet worden geassocieerd met elk teken.

Het is duidelijk dat dit een voorwaardelijke kwestie is, je kunt veel coderingsmethoden bedenken.

Alle tekens van het computeralfabet zijn genummerd van 0 tot 255. Elk cijfer komt overeen met een achtcijferige binaire code van 00000000 tot 11111111. Deze code is gewoon het volgnummer van het teken in het binaire systeem.

De tabel waarin alle tekens van het computeralfabet serienummers zijn toegewezen, wordt de coderingstabel genoemd.

Er worden verschillende codeertabellen gebruikt voor verschillende soorten computers.

De internationale standaard voor de pc is de tafel geworden ASCII(lees asci) (American Standard Code for Information Interchange).

De ASCII-tabel is opgedeeld in twee delen.

De internationale standaard is alleen de eerste helft van de tabel, d.w.z. symbolen met cijfers van 0 (00000000), tot 127 (01111111).

ASCII-coderingstabelstructuur

Serienummer

Code

Symbool

0 - 31

00000000 - 00011111

Symbolen met cijfers van 0 tot 31 worden meestal controletekens genoemd.
Hun functie is om het proces van het weergeven van tekst op het scherm of afdrukken, het geven van een geluidssignaal, het markeren van tekst, enz.

32 - 127

00100000 - 01111111

Standaard deel van de tafel (Engels). Dit omvat kleine letters en hoofdletters van het Latijnse alfabet, decimale cijfers, leestekens, allerlei soorten haakjes, commerciële en andere symbolen.
Teken 32 is een spatie, d.w.z. lege positie in de tekst.
Alle andere worden weerspiegeld in bepaalde tekens.

128 - 255

10000000 - 11111111

Alternatief deel van de tabel (Russisch).
De tweede helft van de ASCII-codetabel, de codetabel genoemd (128 codes, beginnend met 10000000 en eindigend met 11111111), kan verschillende varianten hebben, elke variant heeft zijn eigen nummer.
De codetabel wordt voornamelijk gebruikt voor andere nationale alfabetten dan het Latijn. In Russische nationale coderingen bevat dit deel van de tabel symbolen van het Russische alfabet.

De eerste helft van de ASCII-tabel


Ik vestig uw aandacht op het feit dat in de coderingstabel letters (hoofdletters en kleine letters) in alfabetische volgorde zijn gerangschikt en cijfers in oplopende volgorde van waarden. Deze naleving van de lexicografische volgorde in de rangschikking van tekens wordt het principe van sequentiële codering van het alfabet genoemd.

Voor de letters van het Russische alfabet wordt ook het principe van sequentiële codering in acht genomen.

De tweede helft van de ASCII-tabel


Helaas zijn er momenteel vijf verschillende Cyrillische coderingen (KOI8-R, Windows. MS-DOS, Macintosh en ISO). Hierdoor ontstaan ​​er vaak problemen met de overdracht van Russische tekst van de ene computer naar de andere, van het ene softwaresysteem naar het andere.

Chronologisch gezien was een van de eerste standaarden voor het coderen van Russische letters op computers KOI8 ("Information exchange code, 8-bit"). Deze codering werd in de jaren 70 gebruikt op computers van de ES-computerserie en vanaf het midden van de jaren 80 begon het te worden gebruikt in de eerste Russified-versies van het UNIX-besturingssysteem.

Vanaf het begin van de jaren 90, de tijd van de dominantie van het MS DOS-besturingssysteem, blijft de CP866-codering bestaan ​​("CP" staat voor "Code Page").

Apple-computers met Mac OS gebruiken hun eigen Mac-codering.

Daarnaast heeft de International Standards Organization (ISO) een andere codering goedgekeurd, ISO 8859-5 genaamd, als standaard voor de Russische taal.

Momenteel is de meest voorkomende codering Microsoft Windows, afgekort als CP1251.

Sinds de late jaren 90 is het probleem van opgelost door de introductie van een nieuwe internationale standaard genaamd Unicode... Dit is een 16-bits codering, d.w.z. het wijst 2 bytes geheugen toe voor elk teken. Dit verdubbelt natuurlijk de hoeveelheid geheugen die wordt gebruikt. Maar aan de andere kant maakt zo'n codetabel het opnemen van maximaal 65536 tekens mogelijk. De volledige specificatie van de Unicode-standaard omvat alle bestaande, uitgestorven en kunstmatig gecreëerde alfabetten van de wereld, evenals vele wiskundige, muzikale, chemische en andere symbolen.

Laten we proberen een ASCII-tabel te gebruiken om ons voor te stellen hoe woorden eruit zullen zien in het computergeheugen.

Interne representatie van woorden in computergeheugen

Soms gebeurt het dat een tekst die bestaat uit letters van het Russische alfabet, ontvangen van een andere computer, niet kan worden gelezen - er is een soort "brabbel" zichtbaar op het beeldscherm. Dit komt door het feit dat computers verschillende codering van de tekens van de Russische taal gebruiken.

08. 06.2018

Dmitry Vassiyarovs blog.

Binaire code - waar en hoe wordt het gebruikt?

Vandaag ben ik vooral blij u te ontmoeten, mijn beste lezers, omdat ik me een leraar voel die, bij de allereerste les, de klas begint vertrouwd te maken met letters en cijfers. En aangezien we in de wereld van digitale technologieën leven, zal ik je vertellen wat binaire code is, wat hun basis is.

Laten we beginnen met de terminologie en uitzoeken wat binair betekent. Laten we ter verduidelijking terugkeren naar onze gebruikelijke berekening, die "decimaal" wordt genoemd. Dat wil zeggen, we gebruiken 10 cijfers, die het mogelijk maken om gemakkelijk met verschillende nummers te werken en een bijbehorend register bij te houden. Volgens deze logica gebruikt het binaire systeem slechts twee tekens. In ons geval is het gewoon "0" (nul) en "1" één. En hier wil ik je waarschuwen dat er, hypothetisch gezien, in hun plaats andere conventies zouden kunnen zijn, maar alleen dergelijke waarden, die de afwezigheid (0, leeg) en de aanwezigheid van een signaal (1 of "stick") aangeven, zullen ons helpen de structuur van de binaire code verder te begrijpen.

Waarom heb ik binair nodig?

Vóór de komst van computers werden verschillende automatische systemen gebruikt, waarvan het werkingsprincipe is gebaseerd op het ontvangen van een signaal. De sensor wordt geactiveerd, het circuit wordt gesloten en een specifiek apparaat wordt ingeschakeld. Geen stroom in het signaalcircuit - geen bediening. Het waren elektronische apparaten die vooruitgang boekten bij het verwerken van informatie die wordt weergegeven door de aan- of afwezigheid van spanning in een circuit.

Hun verdere complicatie leidde tot het verschijnen van de eerste processors, die ook hun werk deden door een signaal te verwerken dat al bestond uit pulsen die op een bepaalde manier afwisselden. We zullen nu niet ingaan op de programmadetails, maar het volgende is voor ons belangrijk: elektronische apparaten bleken een bepaalde reeks inkomende signalen te kunnen onderscheiden. Het is natuurlijk mogelijk om de voorwaardelijke combinatie als volgt te omschrijven: “er is een signaal”; "geen signaal"; "Er is een signaal"; "Er is een signaal." U kunt zelfs de notatie vereenvoudigen: "is"; "Nee"; "er is"; "er is".

Maar het is veel gemakkelijker om de aanwezigheid van een signaal aan te duiden met één "1" en de afwezigheid ervan - met nul "0". Dan kunnen we in plaats van dit alles een eenvoudig en beknopt binair getal gebruiken: 1011.

De processortechnologie heeft ongetwijfeld grote vooruitgang geboekt en nu kunnen de chips niet alleen een reeks signalen waarnemen, maar hele programma's die zijn geschreven in specifieke opdrachten die uit afzonderlijke tekens bestaan. Maar voor hun opname wordt dezelfde binaire code gebruikt, bestaande uit nullen en enen, overeenkomend met de aanwezigheid of afwezigheid van een signaal. Of hij het is of niet, het maakt niet uit. Voor een chip is elk van deze opties een enkel stuk informatie dat een "bit" wordt genoemd (bit is de officiële meeteenheid).

Conventioneel kan een teken worden gecodeerd als een reeks van meerdere tekens. Slechts vier varianten kunnen worden beschreven met twee signalen (of hun afwezigheid): 00; 01;10; 11. Deze coderingsmethode wordt two-bit genoemd. Maar het kan zijn:

  • met vier bits (zoals in het voorbeeld voor de paragraaf hierboven 1011) kunt u 2 ^ 4 = 16 tekencombinaties schrijven;
  • acht-bits (bijvoorbeeld: 0101 0011; 0111 0001). Ooit was het het meest interessant voor programmeren, omdat het 2^8 = 256 waarden dekte. Dit maakte het mogelijk om alle decimale cijfers, het Latijnse alfabet en speciale tekens te beschrijven;
  • zestien-bits (1100 1001 0110 1010) en hoger. Maar records met zo'n lengte zijn al voor moderne, complexere taken. Moderne processors gebruiken 32- en 64-bits architectuur;

Eerlijk gezegd is er geen enkele officiële versie, het gebeurde zo dat de combinatie van acht tekens een standaardmaat voor opgeslagen informatie is geworden, "byte" genoemd. Dit kan zelfs worden toegepast op één letter geschreven in 8-bits binaire code. Dus, mijn beste vrienden, onthoud alsjeblieft (als iemand het niet wist):

8 bits = 1 byte.

Het wordt dus geaccepteerd. Hoewel een teken dat is geschreven als een 2-bits of 32-bits waarde, ook nominaal een byte kan worden genoemd. Trouwens, dankzij de binaire code kunnen we het volume van bestanden schatten in bytes en de snelheid van informatie en internetoverdracht (bits per seconde).

Binaire codering in actie

Om het vastleggen van informatie voor computers te standaardiseren, zijn er verschillende coderingssystemen ontwikkeld, waarvan één ASCII, gebaseerd op 8-bits opnemen, wijdverbreid is geworden. De waarden erin zijn op een speciale manier verdeeld:

  • de eerste 31 tekens zijn controletekens (van 00000000 tot 00011111). Dienen voor serviceopdrachten, uitvoer naar een printer of scherm, geluidssignalen, tekstopmaak;
  • de volgende van 32 tot 127 (00100000 - 01111111) Latijns alfabet en hulpsymbolen en leestekens;
  • de rest, tot 255 (10000000 - 11111111) - een alternatief deel van de tabel voor speciale taken en weergave van nationale alfabetten;

De decodering van de waarden erin wordt weergegeven in de tabel.

Als u denkt dat "0" en "1" zich in een chaotische volgorde bevinden, dan heeft u het mis. Ik gebruik een willekeurig getal als voorbeeld, ik zal je een patroon laten zien en je leren hoe je getallen kunt lezen die in binaire code zijn geschreven. Maar hiervoor accepteren we enkele conventies:

  • een byte van 8 karakters wordt van rechts naar links gelezen;
  • als we in gewone getallen de cijfers van enen, tientallen, honderden gebruiken, dan worden hier (in omgekeerde volgorde gelezen) voor elk bit verschillende machten van "twee" weergegeven: 256-124-64-32-16-8-4-2 -1;
  • nu kijken we naar de binaire code van een getal, bijvoorbeeld 00011011. Waar er een signaal "1" is in de corresponderende positie, nemen we de waarden van dit bit en vatten ze op de gebruikelijke manier samen. Dienovereenkomstig: 0 + 0 + 0 + 32 + 16 + 0 + 2 + 1 = 51. U kunt de juistheid van deze methode controleren door naar de codetabel te kijken.

Nu, mijn nieuwsgierige vrienden, u weet niet alleen wat een binaire code is, maar u weet ook hoe u de informatie die ermee versleuteld is, kunt transformeren.

Taal begrijpelijk voor moderne technologie

Natuurlijk is het algoritme voor het lezen van binaire code door processorapparaten veel gecompliceerder. Maar aan de andere kant kun je het gebruiken om alles te schrijven wat je maar wilt:

  • tekstinformatie met opmaakopties;
  • nummers en eventuele bewerkingen daarmee;
  • grafische en videobeelden;
  • geluiden, ook geluiden die de grenzen van onze hoorbaarheid overschrijden;

Bovendien zijn er door de eenvoud van "presentatie" verschillende manieren om binaire informatie op te nemen mogelijk: HDD-schijven;

De voordelen van binaire codering worden aangevuld met bijna onbeperkte mogelijkheden om informatie over elke afstand te verzenden. Het is deze manier van communiceren die wordt gebruikt met ruimteschepen en kunstmatige satellieten.

Dus tegenwoordig is het binaire getalsysteem een ​​taal die wordt begrepen door de meeste elektronische apparaten die we gebruiken. En wat het meest interessant is, er is nog geen ander alternatief voor voorzien.

Ik denk dat de informatie die ik heb geschetst om te beginnen voldoende voor je zal zijn. En dan, als zo'n behoefte zich voordoet, kan iedereen zich verdiepen in een onafhankelijke studie van dit onderwerp. Ik neem afscheid en na een korte pauze zal ik voor jullie een nieuw artikel op mijn blog voorbereiden over een interessant onderwerp.

Het is beter als je het me zelf vertelt ;)

Tot ziens.