Hvordan telle binær kode. Binær kode til tekst

For å automatisere arbeid med data som tilhører forskjellige typer, er det veldig viktig å forene presentasjonsformen deres - for dette brukes vanligvis teknikken koding, det vil si å uttrykke data av én type i form av data av en annen type. Naturlig menneske språk - de er ikke annet enn konseptkodesystemer for å uttrykke tanker gjennom tale. Tett ved siden av tunger ABC-er(systemer for koding av språkkomponenter ved hjelp av grafiske symboler). Historien kjenner til interessante, om enn mislykkede forsøk på å lage "universelle" språk og alfabeter. Tilsynelatende skyldes svikt i forsøk på å implementere det faktum at nasjonale og sosiale enheter naturlig forstår at endring av systemet for koding av offentlige data absolutt vil føre til en endring i sosiale metoder (det vil si juridiske og moralske normer), og dette kan være forbundet med sosiale omveltninger.

Det samme problemet med et universelt kodeverktøy blir implementert ganske vellykket i visse grener av teknologi, vitenskap og kultur. Eksempler inkluderer et system for å skrive matematiske uttrykk, et telegrafalfabet, et marineflaggalfabet, et blindeskriftsystem for blinde og mye mer.

Datateknologi har også sitt eget system - det heter binær koding og er basert på å representere data som en sekvens av bare to tegn: 0 og 1. Disse tegnene kalles binære sifre, på engelsk - binært siffer eller for kort treff (bit).

En bit kan uttrykke to konsepter: 0 eller 1 (Ja eller nei, svart eller hvit, sant eller å ligge og så videre.). Hvis antall biter økes til to, kan fire forskjellige konsepter uttrykkes:

Tre biter kan kode åtte forskjellige verdier:

000 001 010 011 100 101 110 111

Ved å øke antall biter i det binære kodesystemet med én, dobler vi antallet verdier som kan uttrykkes i dette systemet, det vil si at den generelle formelen ser slik ut:

Hvor N- antall uavhengige kodede verdier;

T - bitdybde av binær koding tatt i bruk i dette systemet.

Koding av heltall og reelle tall

Heltall er kodet i binært ganske enkelt - bare ta et heltall og del det i to til kvotienten er lik én. Settet med rester fra hver divisjon, skrevet fra høyre til venstre sammen med den siste kvotienten, danner den binære analogen til desimaltallet.

Dermed 19= 10011;.

For å kode heltall fra 0 til 255 er det nok å ha 8 bits binær kode (8 bits). Seksten biter lar deg kode heltall fra 0 til 65 535, og 24 biter lar deg kode mer enn 16,5 millioner forskjellige verdier.

For å kode reelle tall brukes 80-biters koding. I dette tilfellet blir tallet først konvertert til normalisert form:

3,1415926 =0,31415926-10"

300 000 = 0,3 10 6

123 456 789 = 0,123456789 10 10

Den første delen av nummeret kalles mantisse, og den andre - karakteristisk. De fleste av de 80 bitene er tildelt for å lagre mantissen (sammen med tegnet) og et visst fast antall biter er tildelt for å lagre karakteristikken (også fortegnet).

Koding av tekstdata

Hvis hvert tegn i alfabetet er assosiert med et spesifikt heltall (for eksempel et serienummer), kan tekstinformasjon også kodes ved hjelp av binær kode. Åtte binære sifre er nok til å kode 256 forskjellige tegn. Dette er nok til å uttrykke i forskjellige kombinasjoner av åtte biter alle tegnene i det engelske og russiske språket, både små og store bokstaver, samt skilletegn, symboler for grunnleggende aritmetiske operasjoner og noen generelt aksepterte spesialtegn, for eksempel symbolet "§ ".

Teknisk sett ser det veldig enkelt ut, men det har alltid vært ganske betydelige organisatoriske vanskeligheter. I de første årene av utviklingen av datateknologi ble de assosiert med mangelen på nødvendige standarder, men i dag er de tvert imot forårsaket av overfloden av samtidig eksisterende og motstridende standarder. For at hele verden skal kode tekstdata på samme måte, er det nødvendig med enhetlige kodingstabeller, og dette er ennå ikke mulig på grunn av motsetninger mellom tegnene i nasjonale alfabeter, så vel som bedriftsmotsetninger.

For det engelske språket, som de facto har fanget nisjen til et internasjonalt kommunikasjonsmiddel, er motsetningene allerede fjernet. US Standards Institute (ANSI - American National Standard Institute) introduserte et kodesystem ASCII (American Standard Code for Information Interchange - amerikansk standardkode for informasjonsutveksling). I system ASCII to kodetabeller er faste - grunnleggende Og forlenget. Den grunnleggende tabellen fikser kodeverdier fra 0 til 127, og den utvidede tabellen refererer til tegn med tall fra 128 til 255.

De første 32 kodene i basistabellen, som starter med null, er gitt til maskinvareprodusenter (primært produsenter av datamaskiner og utskriftsenheter). Dette området inneholder den såkalte kontrollkoder, som ikke tilsvarer noen språksymboler, og følgelig vises ikke disse kodene verken på skjermen eller på utskriftsenheter, men de kan kontrollere hvordan andre data sendes ut.

Fra kode 32 til kode 127 er det koder for tegn i det engelske alfabetet, skilletegn, tall, aritmetiske operasjoner og noen hjelpetegn.

Lignende systemer for koding av tekstdata er utviklet i andre land. For eksempel, i USSR opererte KOI-7-kodesystemet i dette området (informasjonsutvekslingskode, syv sifre). Imidlertid brakte støtte fra maskinvare- og programvareprodusenter den amerikanske koden ASCII til nivå med en internasjonal standard, og nasjonale kodesystemer måtte "trekke seg tilbake" til en andre, utvidet del av kodesystemet, som definerer betydningen av kodene fra 128 til 255. Mangelen på en enkelt standard på dette området har ført til et mangfold av samtidige kodinger. Bare i Russland er det mulig å indikere tre gjeldende kodingsstandarder og ytterligere to utdaterte.

For eksempel tegnkodingen til det russiske språket, kjent som kodingen Windows-1251, ble introdusert "fra utsiden" - av Microsoft, men gitt den utbredte distribusjonen av operativsystemer og andre produkter fra dette selskapet i Russland, var det dypt forankret og mye brukt. Denne kodingen brukes på de fleste lokale datamaskiner som kjører på Windows-plattformen.

En annen vanlig koding kalles KOI-8 (informasjonsutvekslingskode, åtte sifre) - dens opprinnelse går tilbake til tiden for Rådet for gjensidig økonomisk bistand fra østeuropeiske stater. I dag er KOI-8-koding mye brukt i datanettverk i Russland og i den russiske sektoren av Internett.

Den internasjonale standarden, som sørger for koding av tegn i det russiske alfabetet, kalles koding ISO (International Standard Organization - International Institute for Standardization). I praksis brukes denne kodingen sjelden.

På datamaskiner som kjører operativsystemer MS-DOS ytterligere to kodinger kan være aktive (koding Gjester koding GOST-alternativ). Den første av dem ble ansett som foreldet selv i de første årene av bruken av personlig databehandling, men den andre brukes fortsatt til i dag.

På grunn av overfloden av tekstdatakodingssystemer som opererer i Russland, oppstår problemet med intersystemdatakonvertering - dette er et av de vanlige problemene innen informatikk.

Universelt tekstdatakodingssystem

Hvis vi analyserer de organisatoriske vanskelighetene knyttet til opprettelsen av et enhetlig system for koding av tekstdata, kan vi komme til den konklusjon at de er forårsaket av et begrenset sett med koder (256). Samtidig er det åpenbart at hvis du for eksempel koder symboler ikke med åtte-bits binære tall, men med tall med et stort antall biter, vil utvalget av mulige kodeverdier bli mye større. Dette systemet, basert på 16-biters tegnkoding, kalles universell - UNICODE. Seksten sifre gjør det mulig å gi unike koder for 65 536 forskjellige tegn - dette feltet er nok til å romme de fleste språkene på planeten i én tabell med tegn.

Til tross for den trivielle åpenbarheten av denne tilnærmingen, ble en enkel mekanisk overgang til dette systemet hindret i lang tid på grunn av utilstrekkelige dataressurser (i kodesystemet UNICODE alle tekstdokumenter blir automatisk dobbelt så lange). I andre halvdel av 90-tallet nådde tekniske midler det nødvendige nivået av ressurstilførsel, og i dag ser vi en gradvis overføring av dokumenter og programvare til et universelt kodesystem. For individuelle brukere ga dette enda flere bekymringer angående koordinering av dokumenter laget i forskjellige kodesystemer med programvare, men dette må forstås som vanskeligheter i overgangsperioden.

Grafikkdatakoding

Hvis du ser på et sort/hvitt grafisk bilde trykt i en avis eller bok med et forstørrelsesglass, kan du se at det består av bittesmå prikker som danner et karakteristisk mønster som kalles raster(Figur 1).

Ris. 1. Raster er en metode for å kode grafisk informasjon som lenge har vært akseptert i utskrift

Siden de lineære koordinatene og individuelle egenskapene til hvert punkt (lysstyrke) kan uttrykkes ved hjelp av heltall, kan vi si at rasterkoding tillater bruk av binær kode for å representere grafiske data. Det er generelt akseptert i dag å representere svart-hvitt-illustrasjoner som en kombinasjon av prikker med 256 nyanser av grått, og dermed er et åtte-bits binært tall vanligvis tilstrekkelig til å kode lysstyrken til enhver prikk.

Brukes til å kode fargegrafikk nedbrytningsprinsippet tilfeldige farger for hovedkomponentene. Tre primærfarger brukes som slike komponenter: rød (Rød, R), grønn (Grønn, G) og blått (Blå, B). I praksis antas det (selv om dette teoretisk ikke er helt sant) at enhver farge som er synlig for det menneskelige øyet kan oppnås ved mekanisk å blande disse tre primærfargene. Dette kodesystemet kalles et system RGB ved de første bokstavene i navnene på primærfargene.

Hvis 256 verdier (åtte binære biter) brukes til å kode lysstyrken til hver av hovedkomponentene, slik det er vanlig for halvtone svart-hvitt-bilder, må 24 biter brukes for å kode fargen til ett punkt. Samtidig gir kodesystemet en entydig identifikasjon av 16,5 millioner forskjellige farger, som faktisk er nær følsomheten til det menneskelige øyet. Modusen for å representere fargegrafikk ved bruk av 24 binære biter kalles full farge (True Color).

Hver av primærfargene kan assosieres med en ekstra farge, det vil si en farge som komplementerer primærfargen til hvit. Det er lett å se at for en hvilken som helst av primærfargene vil komplementærfargen være fargen som dannes av summen av paret av andre primærfarger. Følgelig er tilleggsfarger: blå (Cyan, S), lilla (Magenta, M) og gul ( Gul, Y). Prinsippet om å dekomponere en vilkårlig farge til dens bestanddeler kan brukes ikke bare på primærfarger, men også på ytterligere farger, det vil si at enhver farge kan representeres som summen av cyan, magenta og gule komponenter. Denne metoden for fargekoding er akseptert i utskrift, men utskrift bruker også en fjerde maling - svart (Sort, K). Derfor er dette kodesystemet utpekt med fire bokstaver CMYK(svart farge er angitt med bokstaven TIL, fordi brevet I allerede okkupert av blått), og for å representere fargegrafikk i dette systemet må du ha 32 binære biter. Denne modusen kalles også full farge. (Ekte farge).

Hvis du reduserer antallet binære biter som brukes til å kode fargen til hvert punkt, kan du redusere datamengden, men rekkevidden av kodede farger reduseres merkbart. Koding av fargegrafikk med 16-bits binære tall kalles en modus Høy farge.

Når fargeinformasjon er kodet med åtte databiter, kan bare 256 fargenyanser formidles. Denne fargekodingsmetoden kalles indeks. Betydningen av navnet er at siden 256 verdier er helt utilstrekkelige for å formidle hele spekteret av farger tilgjengelig for det menneskelige øyet, uttrykker ikke koden for hvert rasterpunkt selve fargen, men bare nummeret. (indeks) i noen oppslagstabell kalt palett. Selvfølgelig må denne paletten festes til de grafiske dataene - uten den er det umulig å bruke metoder for å reprodusere informasjon på en skjerm eller papir (det vil si at du selvfølgelig kan bruke den, men på grunn av ufullstendighet av dataene , vil informasjonen som mottas ikke være tilstrekkelig: løvet på trærne kan vise seg å være rødt, og himmelen er grønn).

Koding av lydinformasjon

Teknikker og metoder for å arbeide med lydinformasjon kom til datateknologien sist. I tillegg, i motsetning til numeriske, tekstlige og grafiske data, hadde ikke lydopptak den samme lange og velprøvde kodehistorien. Som et resultat er metoder for å kode lydinformasjon ved hjelp av binær kode langt fra standardisering. Mange enkeltbedrifter har utviklet egne bedriftsstandarder, men generelt sett kan to hovedområder skilles.

FM-metoden (Frekvensmodulering) er basert på det faktum at teoretisk sett kan enhver kompleks lyd dekomponeres i en sekvens av enkle harmoniske signaler med forskjellige frekvenser, som hver representerer en vanlig sinusoid, og derfor kan beskrives med numeriske parametere, det vil si en kode. I naturen har lydsignaler et kontinuerlig spektrum, det vil si at de er analoge. Deres dekomponering til harmoniske serier og representasjon i form av diskrete digitale signaler utføres av spesielle enheter - analog-til-digital omformere (ADC). Den inverse konverteringen for å reprodusere numerisk kodet lyd utføres digital-til-analog-omformere (DAC). Med slike transformasjoner er informasjonstap knyttet til kodingsmetoden uunngåelig, så kvaliteten på lydopptak er vanligvis ikke helt tilfredsstillende og tilsvarer lydkvaliteten til de enkleste elektriske musikkinstrumentene med en fargekarakteristisk for elektronisk musikk. Samtidig gir denne kodemetoden en veldig kompakt kode, og derfor ble den brukt selv i de årene da datamaskinressursene tydeligvis var utilstrekkelige.

Tabellbølgemetode ( Bølgetabell) syntese samsvarer bedre med dagens nivå av teknologiutvikling. For å si det enkelt, kan vi si at et sted i forhåndsforberedte tabeller er det lagret prøver av lyder for mange forskjellige musikkinstrumenter (men ikke bare for dem). I teknologi kalles slike prøver prøver. Numeriske koder uttrykker typen instrument, dets modellnummer, tonehøyde, varighet og intensitet til lyden, dynamikken i endringen, noen parametere for miljøet der lyden oppstår, samt andre parametere som karakteriserer lydens egenskaper. Siden "ekte" lyder brukes som samples, er kvaliteten på lyden som oppnås som et resultat av syntese svært høy og nærmer seg lydkvaliteten til ekte musikkinstrumenter.

Grunnleggende datastrukturer

Arbeid med store datasett er lettere å automatisere når dataene bestilte, det vil si at de danner en gitt struktur. Det er tre hovedtyper av datastrukturer: lineær, hierarkisk Og tabell. De kan vurderes å bruke eksemplet på en vanlig bok.

Hvis du tar boken fra hverandre i separate ark og blander dem, vil boken miste sin hensikt. Det vil fortsatt representere et sett med data, men å velge en adekvat metode for å trekke ut informasjon fra det er svært vanskelig. (Situasjonen blir enda verre hvis du kutter ut hver bokstav separat fra boken - i dette tilfellet er det usannsynlig at det vil være en tilstrekkelig metode for å lese den i det hele tatt.)

Hvis vi samler alle arkene i boken i riktig rekkefølge, får vi den enkleste datastrukturen - lineær. En slik bok kan allerede leses, men for å finne de nødvendige dataene må du lese den på rad, helt fra begynnelsen, noe som ikke alltid er praktisk.

For raskt å søke etter data er det hierarkisk struktur. Så for eksempel er bøker delt inn i deler, seksjoner, kapitler, avsnitt osv. Elementer i en struktur på lavere nivå er inkludert i elementer i en struktur på høyere nivå: seksjoner består av kapitler, kapitler med avsnitt osv.

For store matriser er det mye enklere å søke etter data i en hierarkisk struktur enn i en lineær, men selv her er det nødvendig navigasjon, knyttet til behovet for å se. I praksis forenkles oppgaven ved at de fleste bøker har et hjelpetverrsnitt bord, koble elementer av en hierarkisk struktur med elementer av en lineær struktur, det vil si å koble seksjoner, kapitler og avsnitt med sidetall. I bøker med en enkel hierarkisk struktur designet for sekvensiell lesing, kalles denne tabellen vanligvis innholdsfortegnelse, og i bøker med en kompleks struktur som tillater selektiv lesing, kalles det innhold.

Datamaskiner forstår ikke ord og tall slik folk gjør. Moderne programvare lar sluttbrukeren ignorere dette, men på de laveste nivåene opererer datamaskinen på et binært elektrisk signal som har bare to stater: om det er nåværende eller ikke. For å "forstå" komplekse data, må datamaskinen kode dem i binært format.

Det binære systemet er basert på to sifre, 1 og 0, som tilsvarer av og på-tilstander som datamaskinen din kan forstå. Du er sikkert kjent med desimalsystemet. Den bruker ti sifre, fra 0 til 9, og går deretter videre til neste rekkefølge for å danne tosifrede tall, hvor hvert tall er ti ganger større enn det forrige. Det binære systemet er likt, hvor hvert siffer er dobbelt så stort som det forrige.

Telling i binært format

I binært uttrykk tilsvarer det første sifferet 1 i desimalsystemet. Det andre sifferet er 2, det tredje er 4, det fjerde er 8, og så videre - dobles hver gang. Hvis du legger til alle disse verdiene, får du tallet i desimalformat.

1111 (i binær) = 8 + 4 + 2 + 1 = 15 (i desimal)

Regnskap for 0 gir oss 16 mulige verdier for fire binære biter. Flytt 8 biter og du får 256 mulige verdier. Dette tar opp mye mer plass å representere siden fire desimalsiffer gir oss 10 000 mulige verdier. Selvfølgelig tar binær kode mer plass, men datamaskiner forstår binære filer mye bedre enn desimalsystemet. Og for noen ting, som logisk prosessering, er binært bedre enn desimal.

Det skal sies at det er et annet grunnleggende system som brukes i programmering: heksadesimal. Selv om datamaskiner ikke fungerer i heksadesimalt format, bruker programmerere det til å representere binære adresser i et menneskelesbart format når de skriver kode. Dette er fordi to sifre i et heksadesimalt tall kan representere en hel byte, noe som betyr at de erstatter åtte sifre i binær. Det heksadesimale systemet bruker tallene 0-9, samt bokstavene A til F, for å lage ytterligere seks sifre.

Hvorfor bruker datamaskiner binære filer?

Kort svar: maskinvare og fysikklover. Hvert tegn i datamaskinen din er et elektrisk signal, og i de tidlige dagene med databehandling var det mye vanskeligere å måle elektriske signaler. Det var mer fornuftig å skille bare "på"-tilstanden, representert av en negativ ladning, og "av"-tilstanden, representert av en positiv ladning.

For de som ikke vet hvorfor "av" er representert med en positiv ladning, er det fordi elektroner har en negativ ladning, og flere elektroner betyr mer strøm med negativ ladning.

Dermed ble tidlig romstørrelse datamaskiner brukt binære filer for å lage systemene sine, og selv om de brukte eldre, bulkere utstyr, jobbet de etter de samme grunnleggende prinsippene. Moderne datamaskiner bruker det som kalles transistor å utføre beregninger med binær kode.

Her er et diagram over en typisk transistor:

I hovedsak lar den strøm flyte fra kilden til avløpet hvis det er strøm i porten. Dette danner en binær nøkkel. Produsenter kan gjøre disse transistorene utrolig små – ned til 5 nanometer, eller størrelsen på to DNA-tråder. Dette er hvordan moderne prosessorer fungerer, og selv de kan lide av problemer med å skille mellom av og på-tilstander (selv om dette skyldes at deres urealistiske molekylstørrelse er utsatt for det rare med kvantemekanikk).

Hvorfor bare binært system

Så du tenker kanskje: "Hvorfor bare 0 og 1? Hvorfor ikke legge til et annet tall? Selv om dette delvis skyldes tradisjonene med å lage datamaskiner, vil det å legge til et annet siffer samtidig bety behovet for å skille en annen tilstand av strømmen, ikke bare "av" eller "på".

Problemet her er at hvis du vil bruke flere spenningsnivåer, trenger du en måte å enkelt utføre beregninger på dem, og nåværende maskinvare som er i stand til dette er ikke levedyktig som erstatning for binære beregninger. For eksempel er det en såkalt trippel datamaskin, utviklet på 1950-tallet, men utviklingen stoppet der. Ternær logikk mer effektiv enn binær, men det er ennå ikke en effektiv erstatning for den binære transistoren, eller i det minste ingen transistor i samme lille skala som binær.

Grunnen til at vi ikke kan bruke ternær logikk kommer ned til hvordan transistorer er koblet sammen i en datamaskin og hvordan de brukes til matematiske beregninger. Transistoren mottar informasjon ved to innganger, utfører en operasjon og returnerer resultatet til én utgang.

Dermed er binær matematikk enklere for en datamaskin enn noe annet. Binær logikk konverteres enkelt til binære systemer, med True og False som tilsvarer On og Off-tilstander.

En binær sannhetstabell som kjører på binær logikk vil ha fire mulige utganger for hver grunnleggende operasjon. Men siden trippelporter bruker tre innganger, vil trippel sannhetstabellen ha 9 eller mer. Mens det binære systemet har 16 mulige operatorer (2^2^2), vil det ternære systemet ha 19683 (3^3^3). Skalering blir et problem fordi selv om treenigheten er mer effektiv, er den også eksponentielt mer kompleks.

Hvem vet? I fremtiden kan vi godt se ternære datamaskiner når binær logikk står overfor miniatyriseringsproblemer. Foreløpig vil verden fortsette å operere i binær modus.

Binær kode representerer tekst, dataprosessorinstruksjoner eller andre data som bruker et to-tegnssystem. Oftest er det et system med 0-er og 1-ere som tildeler et mønster av binære sifre (biter) til hvert symbol og instruksjon. For eksempel kan en binær streng på åtte biter representere hvilken som helst av 256 mulige verdier og kan derfor generere mange forskjellige elementer. Anmeldelser av binær kode fra det globale profesjonelle fellesskapet av programmerere indikerer at dette er grunnlaget for yrket og hovedloven for hvordan datasystemer og elektroniske enheter fungerer.

Dechiffrere den binære koden

I databehandling og telekommunikasjon brukes binære koder for ulike metoder for å kode datategn til bitstrenger. Disse metodene kan bruke strenger med fast bredde eller variabel bredde. Det er mange tegnsett og kodinger for konvertering til binær kode. I kode med fast bredde er hver bokstav, tall eller annet tegn representert av en bitstreng av samme lengde. Denne bitstrengen, tolket som et binært tall, vises vanligvis i kodetabeller i oktal, desimal eller heksadesimal notasjon.

Binær dekoding: En bitstreng tolket som et binært tall kan konverteres til et desimaltall. For eksempel kan den lille bokstaven a, hvis representert av bitstrengen 01100001 (som i standard ASCII-kode), også representeres som desimaltall 97. Konvertering av binær kode til tekst er den samme prosedyren, bare i revers.

Hvordan det fungerer

Hva består binær kode av? Koden som brukes i digitale datamaskiner er basert på som det bare er to mulige tilstander: på. og av, vanligvis betegnet med null og én. Mens i desimalsystemet, som bruker 10 sifre, er hver posisjon et multiplum av 10 (100, 1000, etc.), i det binære systemet er hver sifferposisjon et multiplum av 2 (4, 8, 16, etc.) . Et binærkodesignal er en serie elektriske pulser som representerer tall, symboler og operasjoner som skal utføres.

En enhet kalt en klokke sender ut vanlige pulser, og komponenter som transistorer slås på (1) eller av (0) for å overføre eller blokkere pulsene. I binær kode er hvert desimaltall (0-9) representert av et sett med fire binære sifre eller biter. De fire grunnleggende aritmetiske operasjonene (addisjon, subtraksjon, multiplikasjon og divisjon) kan reduseres til kombinasjoner av grunnleggende boolske algebraiske operasjoner på binære tall.

En bit i kommunikasjon og informasjonsteori er en enhet av data som tilsvarer resultatet av et valg mellom to mulige alternativer i det binære tallsystemet som vanligvis brukes i digitale datamaskiner.

Binær kode anmeldelser

Naturen til kode og data er en grunnleggende del av den grunnleggende IT-verdenen. Dette verktøyet brukes av spesialister fra den globale IT "bak kulissene" - programmerere hvis spesialisering er skjult for den gjennomsnittlige brukerens oppmerksomhet. Anmeldelser av binær kode fra utviklere indikerer at dette området krever en dyp studie av matematiske grunnleggende og omfattende praksis innen matematisk analyse og programmering.

Binær kode er den enkleste formen for datakode eller programmeringsdata. Det er fullstendig representert av et binært siffersystem. I følge anmeldelser av binær kode er det ofte assosiert med maskinkode fordi binære sett kan kombineres for å danne kildekode som tolkes av en datamaskin eller annen maskinvare. Dette er delvis sant. bruker sett med binære sifre for å danne instruksjoner.

Sammen med den mest grunnleggende formen for kode, representerer en binær fil også den minste mengden data som flyter gjennom alle de komplekse, ende-til-ende maskin- og programvaresystemene som behandler dagens ressurser og dataressurser. Den minste mengden data kalles en bit. De gjeldende bitstrengene blir kode eller data som tolkes av datamaskinen.

Binært tall

I matematikk og digital elektronikk er et binært tall et tall uttrykt i base-2-tallsystemet, eller binært numerisk system, som bare bruker to tegn: 0 (null) og 1 (en).

Base-2 tallsystemet er en posisjonsnotasjon med en radius på 2. Hvert siffer omtales som en bit. På grunn av sin enkle implementering i digitale elektroniske kretser ved bruk av logiske regler, brukes det binære systemet av nesten alle moderne datamaskiner og elektroniske enheter.

Historie

Det moderne binære tallsystemet som grunnlag for binær kode ble oppfunnet av Gottfried Leibniz i 1679 og presentert i hans artikkel "Binary Arithmetic Explained". Binære tall var sentrale i Leibniz sin teologi. Han mente at binære tall symboliserte den kristne ideen om kreativitet ex nihilo, eller skapelse ut av ingenting. Leibniz prøvde å finne et system som ville transformere verbale logiske utsagn til rent matematiske data.

Binære systemer som er før Leibniz eksisterte også i den antikke verden. Et eksempel er det kinesiske binære systemet I Ching, hvor spådomsteksten er basert på dualiteten yin og yang. I Asia og Afrika ble slissetrommer med binære toner brukt til å kode meldinger. Den indiske lærde Pingala (ca. 500-tallet f.Kr.) utviklet et binært system for å beskrive prosodi i sitt verk Chandashutrema.

Innbyggerne på øya Mangareva i Fransk Polynesia brukte et hybrid binært-desimalt system frem til 1450. På 1000-tallet utviklet vitenskapsmannen og filosofen Shao Yong en metode for å organisere heksagrammer som tilsvarer sekvensen 0 til 63, som representert i et binært format, der yin er 0 og yang er 1. Rekkefølgen er også en leksikografisk rekkefølge i blokker med elementer valgt fra et sett med to elementer.

Ny tid

I 1605 diskuterte et system der bokstavene i alfabetet kunne reduseres til sekvenser av binære sifre, som deretter kunne kodes som subtile variasjoner av typen i hvilken som helst tilfeldig tekst. Det er viktig å merke seg at det var Francis Bacon som supplerte den generelle teorien om binær koding med observasjonen at denne metoden kan brukes med alle objekter.

En annen matematiker og filosof ved navn George Boole publiserte en artikkel i 1847 kalt "Mathematical Analysis of Logic", som beskrev det algebraiske logikksystemet kjent i dag som boolsk algebra. Systemet var basert på en binær tilnærming, som besto av tre grunnleggende operasjoner: OG, ELLER og IKKE. Dette systemet ble ikke operativt før en MIT-student ved navn Claude Shannon la merke til at den boolske algebraen han lærte var lik en elektrisk krets.

Shannon skrev en avhandling i 1937 som gjorde viktige funn. Shannons oppgave ble utgangspunktet for bruk av binær kode i praktiske applikasjoner som datamaskiner og elektriske kretser.

Andre former for binær kode

Bitstring er ikke den eneste typen binær kode. Et binært system generelt er ethvert system som bare tillater to alternativer, for eksempel en bryter i et elektronisk system eller en enkel sann eller usann test.

Punktskrift er en type binær kode som er mye brukt av blinde for å lese og skrive ved berøring, oppkalt etter skaperen Louis Braille. Dette systemet består av rutenett med seks punkter hver, tre per kolonne, der hvert punkt har to tilstander: hevet eller innfelt. Ulike kombinasjoner av prikker kan representere alle bokstaver, tall og skilletegn.

American Standard Code for Information Interchange (ASCII) bruker en 7-bits binær kode for å representere tekst og andre tegn i datamaskiner, kommunikasjonsutstyr og andre enheter. Hver bokstav eller symbol er tildelt et tall fra 0 til 127.

Binærkodet desimal eller BCD er en binærkodet representasjon av heltallsverdier som bruker en 4-bits graf for å kode desimalsifre. Fire binære biter kan kode opptil 16 forskjellige verdier.

I BCD-kodede tall er bare de ti første verdiene i hver nibble gyldige og koder desimalsifrene med nuller etter ni. De resterende seks verdiene er ugyldige og kan forårsake enten et maskinunntak eller uspesifisert oppførsel, avhengig av datamaskinens implementering av BCD-aritmetikk.

BCD-aritmetikk er noen ganger foretrukket over tallformater med flyttall i kommersielle og finansielle applikasjoner der avrunding av komplekse tall er uønsket.

applikasjon

De fleste moderne datamaskiner bruker et binærkodeprogram for instruksjoner og data. CDer, DVDer og Blu-ray-plater representerer lyd og video i binær form. Telefonsamtaler føres digitalt i langdistanse- og mobiltelefonnett ved bruk av pulskodemodulasjon og i tale over IP-nettverk.

Binær kode

Binær kode er en måte å representere data i ett siffer som en kombinasjon av to tegn, vanligvis betegnet med tallene 0 og 1. Sifferet i dette tilfellet kalles et binært siffer.
Hvis angitt med tallene "0" og "1", er de mulige tilstandene til det binære sifferet utstyrt med den kvalitative relasjonen "1"> "0" og de kvantitative verdiene til tallene "0" og "1".

Binær kode kan være ikke-posisjonell og posisjonell.

, [mulig stater(koder)], hvor:

Antall elementer i et gitt sett med forskjellige elementer (antall mulige tilstander, tall, koder i et siffer),
- antall elementer i settet (antall siffer).
I det binære kodesystemet (n=2) tallet mulige stater(koder) er lik:

, [mulig stater(koder)], dvs.
, [mulig stater(koder)], hvor

Mengde binære sifre (verftet ov, bit ov).
For eksempel, i en 8-bits byte (k=8) antall mulige stater(koder) er lik:

, [mulig stater(koder)].

Når posisjonskode, antall kombinasjoner (koder) n-bit binær kode er lik antall plasseringer med repetisjoner:

, Hvor

Antall biter av den binære koden.

Ved å bruke to binære sifre kan du kode fire forskjellige kombinasjoner: 00 01 10 11, tre binære sifre - åtte: 000 001 010 011 100 101 110 111, og så videre.
Når bitdybden til en binær posisjonskode øker med 1, dobles antallet forskjellige kombinasjoner i den binære posisjonskoden.

Binære koder er kombinasjoner av to elementer og er ikke et binært tallsystem, men brukes som grunnlag i det. Binær kode kan også brukes til å kode tall i tallsystemer i en hvilken som helst annen base. Eksempel: Binærkodet desimal (BCD)-koding bruker binær kode for å kode tall i desimaltallsystemet.
Ved koding av alfanumeriske tegn (tegn) tildeles ikke den binære koden vekter, slik det gjøres i tallsystemer, der binærkoden brukes til å representere tall, men bare serienummeret til koden fra et sett med plasseringer med repetisjoner. brukt.

I tallsystemer n- bit binær kode, (n-1)- bit binær kode, (n-2)-bit binær kode, etc. kan vise samme nummer. For eksempel, 0001, 001, 01, 1 er det samme tallet - "1" i binære koder med et annet antall sifre - n.

Binær kodetabell

numerisk (alfabetisk)

betydning

binær
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
EN 1010
B 1011
C 1100
D 1101
E 1110
F 1111

Et eksempel på "forhistorisk" bruk av koder

Notater

se også


Wikimedia Foundation. 2010.

08. 06.2018

Bloggen til Dmitry Vassiyarov.

Binær kode - hvor og hvordan brukes den?

I dag er jeg spesielt glad for å møte dere, mine kjære lesere, fordi jeg føler meg som en lærer som allerede i den første leksjonen begynner å introdusere klassen for bokstaver og tall. Og siden vi lever i en verden av digital teknologi, vil jeg fortelle deg hva binær kode er, som er grunnlaget deres.

La oss starte med terminologien og finne ut hva binær betyr. For avklaring, la oss gå tilbake til vår vanlige kalkulus, som kalles "desimal". Det vil si at vi bruker 10 sifre, som gjør det mulig å enkelt operere med ulike tall og føre passende journaler.

Etter denne logikken sørger det binære systemet for bruk av bare to tegn. I vårt tilfelle er disse bare "0" (null) og "1" en. Og her vil jeg advare deg om at det hypotetisk sett kan være andre symboler i stedet, men det er nettopp disse verdiene, som indikerer fraværet (0, tomt) og tilstedeværelsen av et signal (1 eller "pinne") som vil hjelpe Vi forstår videre strukturen til den binære koden.

Hvorfor trengs binær kode?

Før bruken av datamaskiner ble det brukt forskjellige automatiske systemer, hvis driftsprinsipp var basert på mottak av et signal. Sensoren utløses, kretsen er lukket og en bestemt enhet er slått på. Ingen strøm i signalkretsen - ingen drift. Det var elektroniske enheter som gjorde det mulig å oppnå fremgang i behandlingen av informasjon representert ved tilstedeværelse eller fravær av spenning i en krets.

Deres ytterligere komplikasjon førte til fremveksten av de første prosessorene, som også gjorde jobben sin, og behandlet et signal bestående av pulser som veksler på en bestemt måte. Vi skal ikke fordype oss i programdetaljene nå, men følgende er viktig for oss: elektroniske enheter viste seg å kunne skille en gitt sekvens av innkommende signaler. Selvfølgelig er det mulig å beskrive den betingede kombinasjonen på denne måten: "det er et signal"; "ingen signal"; "det er et signal"; "det er et signal." Du kan til og med forenkle notasjonen: "det er"; "Nei"; "Det er"; "Det er".

Men det er mye lettere å betegne tilstedeværelsen av et signal med en enhet "1", og dets fravær med en null "0". Da kan vi bruke en enkel og kortfattet binær kode i stedet: 1011.

Selvfølgelig har prosessorteknologien gått langt fremover, og nå er brikker i stand til å oppfatte ikke bare en sekvens av signaler, men hele programmer skrevet med spesifikke kommandoer som består av individuelle tegn.

Men for å registrere dem brukes den samme binære koden, bestående av nuller og enere, tilsvarende tilstedeværelsen eller fraværet av et signal. Om han eksisterer eller ikke, det spiller ingen rolle. For en brikke er noen av disse alternativene en enkelt informasjon, som kalles en "bit" (bit er den offisielle måleenheten).

Konvensjonelt kan et symbol kodes som en sekvens av flere tegn. To signaler (eller deres fravær) kan beskrive bare fire alternativer: 00; 01;10; 11. Denne kodingsmetoden kalles to-bit. Men det kan også være:

  • Fire-bit (som i eksemplet i avsnittet ovenfor 1011) lar deg skrive 2^4 = 16 symbolkombinasjoner;
  • Åtte-bit (for eksempel: 0101 0011; 0111 0001). På et tidspunkt var det av størst interesse for programmering fordi det dekket 2^8 = 256 verdier. Dette gjorde det mulig å beskrive alle desimalsiffer, det latinske alfabetet og spesialtegn;
  • Seksten-bit (1100 1001 0110 1010) og høyere. Men plater med en slik lengde er allerede for moderne, mer komplekse oppgaver. Moderne prosessorer bruker 32- og 64-bits arkitektur;

Ærlig talt er det ingen enkelt offisiell versjon, men det hendte at det var kombinasjonen av åtte tegn som ble standardmålet for lagret informasjon kalt en "byte". Dette kan brukes til og med én bokstav skrevet i 8-bits binær kode. Så, mine kjære venner, husk (hvis noen ikke visste):

8 biter = 1 byte.

Sånn er det. Selv om et tegn skrevet med en 2- eller 32-bits verdi også kan kalles en byte. Forresten, takket være binær kode kan vi estimere volumet av filer målt i byte og hastigheten på informasjon og Internett-overføring (bits per sekund).

Binær koding i aksjon

For å standardisere registrering av informasjon for datamaskiner er det utviklet flere kodesystemer, hvorav ett, ASCII, basert på 8-bits opptak, har blitt utbredt. Verdiene i den er fordelt på en spesiell måte:

  • de første 31 tegnene er kontrolltegn (fra 00000000 til 00011111). Server for servicekommandoer, utdata til en skriver eller skjerm, lydsignaler, tekstformatering;
  • følgende fra 32 til 127 (00100000 – 01111111) latinske alfabet og hjelpesymboler og skilletegn;
  • resten, opp til 255. (10000000 – 11111111) – alternativ, del av tabellen for spesielle oppgaver og visning av nasjonale alfabeter;

Dekodingen av verdiene i den er vist i tabellen.

Hvis du tror at "0" og "1" er plassert i en kaotisk rekkefølge, tar du dypt feil. Ved å bruke et hvilket som helst tall som eksempel, vil jeg vise deg et mønster og lære deg hvordan du leser tall skrevet i binær kode. Men for dette vil vi godta noen konvensjoner:

  • Vi vil lese en byte på 8 tegn fra høyre til venstre;
  • Hvis vi i vanlige tall bruker sifrene til enere, tiere, hundrer, så her (leses i omvendt rekkefølge) for hver bit er forskjellige potenser av "to" representert: 256-124-64-32-16-8- 4-2 -1;
  • Nå ser vi på den binære koden til tallet, for eksempel 00011011. Der det er et "1"-signal i den tilsvarende posisjonen, tar vi verdiene til denne biten og summerer dem på vanlig måte. Følgelig: 0+0+0+32+16+0+2+1 = 51. Du kan verifisere riktigheten av denne metoden ved å se på kodetabellen.

Nå, mine nysgjerrige venner, vet du ikke bare hva binær kode er, men vet også hvordan du konverterer informasjonen kryptert av den.

Språk som er forståelig for moderne teknologi

Algoritmen for å lese binær kode av prosessorenheter er selvfølgelig mye mer komplisert. Men du kan bruke den til å skrive ned alt du vil:

  • Tekstinformasjon med formateringsalternativer;
  • Tall og eventuelle operasjoner med dem;
  • Grafiske og videobilder;
  • Lyder, inkludert de utenfor vårt hørselsområde;

I tillegg, på grunn av enkelheten til "presentasjonen", er forskjellige måter å registrere binær informasjon på:

  • Ved å endre magnetfeltet med ;
  • Fordelene med binær koding er supplert med nesten ubegrensede muligheter for å overføre informasjon over hvilken som helst avstand. Dette er kommunikasjonsmetoden som brukes med romfartøy og kunstige satellitter.

    Så i dag er det binære tallsystemet et språk som forstås av de fleste elektroniske enhetene vi bruker. Og det som er mest interessant er at det ikke er forutsett noe annet alternativ for øyeblikket.

    Jeg tror at informasjonen jeg har presentert vil være nok til at du kan komme i gang. Og så, hvis et slikt behov oppstår, vil alle kunne fordype seg dypere i en uavhengig studie av dette emnet.

    Jeg vil si farvel, og etter en kort pause vil jeg forberede deg en ny artikkel på bloggen min om et interessant emne.

    Det er bedre om du forteller meg det selv ;)

    Ser deg snart.