Binaarikoodin salauksen purku verkossa. Liukulukubinäärikoodiesitys

Tulos on jo saatu!

Numerojärjestelmät

On olemassa paikka- ja ei-paikkalukujärjestelmiä. Arabialainen numerojärjestelmä, jota käytämme jokapäiväisessä elämässä, on paikallinen, mutta roomalainen ei ole. Paikkanumerointijärjestelmissä luvun sijainti määrittää yksiselitteisesti luvun suuruuden. Tarkastellaan tätä käyttämällä esimerkkinä desimaalilukua 6372. Lasketaan tämä luku oikealta vasemmalle alkaen nollasta:

Sitten numero 6372 voidaan esittää seuraavasti:

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

Numero 10 määrittelee numerojärjestelmän (tässä tapauksessa se on 10). Annetun luvun sijainnin arvot otetaan asteina.

Tarkastellaan todellista desimaalilukua 1287.923. Numeroidaan se alkaen luvun nollapaikasta desimaalipilkusta vasemmalle ja oikealle:

Sitten numero 1287.923 voidaan esittää seuraavasti:

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 · 3 · 0 10-3.

Yleensä kaava voidaan esittää seuraavasti:

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

missä Ц n on asemassa oleva kokonaisluku n, Д -k - murtoluku paikassa (-k), s- numerojärjestelmä.

Muutama sana lukujärjestelmistä. Desimaalilukujärjestelmän luku koostuu useista numeroista (0,1,2,3,4,5,6,7,8,9), oktaalilukujärjestelmässä - joukosta numerot (0,1, 2,3,4,5,6,7), binäärilukujärjestelmässä - numerojoukosta (0,1), heksadesimaalilukujärjestelmässä - numerojoukosta (0, 1,2,3,4,5,6, 7,8,9, A, B, C, D, E, F), jossa A, B, C, D, E, F vastaavat numeroita 10,11 ,12,13,14,15.luvut eri numerojärjestelmissä esitetään.

pöytä 1
Merkintä
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 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

Lukujen muuntaminen numerojärjestelmästä toiseen

Lukujen muuntamiseksi yhdestä lukujärjestelmästä toiseen helpoin tapa on muuntaa luku ensin desimaalilukujärjestelmäksi ja sitten kääntää se desimaalilukujärjestelmästä vaadittuun numerojärjestelmään.

Lukujen muuntaminen mistä tahansa numerojärjestelmästä desimaalilukujärjestelmään

Kaavan (1) avulla voit muuntaa numeroita mistä tahansa numerojärjestelmästä desimaalilukujärjestelmään.

Esimerkki 1. Muunna luku 1011101.001 binäärimerkinnästä (SS) desimaaliksi SS:ksi. Ratkaisu:

1 2 6 +0 2 5 + 1 · 2 4+ 1 · 2 3+ 1 · 2 2+ 0 · 2 1 + 1 20+ 0 2-1 + 0 2-2+ 1 2-3 = 64 + 16 + 8 + 4 + 1 + 1/8 = 93,125

Esimerkki2. Muunna 1011101.001 oktaalilukujärjestelmästä (SS) desimaalilukujärjestelmäksi. Ratkaisu:

Esimerkki 3 ... Muunna luku AB572.CDF heksadesimaalikannasta desimaaliluvuksi SS. Ratkaisu:

Tässä A- korvattu 10:llä, B- klo 11, C- kello 12, F-15 mennessä.

Lukujen muuntaminen desimaalilukujärjestelmästä toiseen numerojärjestelmään

Jos haluat muuntaa luvut desimaalilukujärjestelmästä toiseen numerojärjestelmään, sinun on käännettävä erikseen luvun kokonaislukuosa ja luvun murto-osa.

Koko luvun osa siirretään desimaaliluvusta toiseen numerojärjestelmään - jakamalla koko luvun osa peräkkäin numerojärjestelmän kantaluvulla (binääriselle SS:lle - kahdella, 8-arvoiselle SS:lle - 8, 16-vuotiaalle - 16:lla jne.) ), kunnes saadaan kokonainen jäännös, pienempi kuin perus-CC.

Esimerkki 4 ... Muunnetaan luku 159 desimaalista SS:stä binääriseksi SS:ksi:

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

Kuten kuvasta näkyy. 1, luku 159 jaettuna 2:lla antaa osamäärän 79 ja jäännös 1. Lisäksi luku 79 jaettuna 2:lla antaa osamäärän 39 ja jäännös 1 jne. Tämän seurauksena, kun olemme rakentaneet luvun jaon loppuosasta (oikealta vasemmalle), saamme numeron binääri-SS:ssä: 10011111 ... Siksi voimme kirjoittaa:

159 10 =10011111 2 .

Esimerkki 5 ... Muunnetaan luku 615 desimaalista SS:stä oktaaliluvuksi.

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

Kun muunnat luvun desimaaliluvusta oktaaliseksi SS:ksi, sinun on jaettava luku peräkkäin 8:lla, kunnes kokonaisjäännös on pienempi kuin 8. Tämän seurauksena luvun rakentaminen jaon jäännöksistä (oikealta vasemmalle), saamme numeron oktaali-SS:ssä: 1147 (katso kuva 2). Siksi voimme kirjoittaa:

615 10 =1147 8 .

Esimerkki 6 ... Muunna luku 19673 desimaalista heksadesimaaliksi SS:ksi.

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

Kuten kuvasta 3 voidaan nähdä, jakamalla 19673 peräkkäin 16:lla, saimme jäännökset 4, 12, 13, 9. Heksadesimaalijärjestelmässä luku 12 vastaa C:tä ja 13 D:tä. Siksi heksadesimaalilukumme on 4CD9.

Jotta oikeat desimaalimurtoluvut (reaaliluku, jonka kokonaisluku on nolla) muunnetaan kantaluvuksi s, tämä luku on kerrottava peräkkäin s:llä, kunnes murto-osaan saadaan puhdas nolla tai saadaan tarvittava määrä numeroita. Jos kertolaskussa saadaan luku, jonka kokonaislukuosa on eri kuin nolla, tätä kokonaislukuosaa ei oteta huomioon (ne lisätään peräkkäin tulokseen).

Tarkastellaanpa yllä olevaa esimerkein.

Esimerkki 7 ... Muunna luku 0,214 desimaalista binääriarvoksi 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

Kuten kuvasta 4 nähdään, luku 0,214 kerrotaan peräkkäin 2:lla. Jos kertolasku johtaa nollasta poikkeavaan lukuun, jossa on kokonaislukuosa, niin kokonaislukuosa kirjoitetaan erikseen (luvun vasemmalle puolelle) ja luku kirjoitetaan nollan kokonaisluvun osalla. Jos kertomalla saadaan luku, jonka kokonaislukuosa on nolla, niin sen vasemmalle puolelle kirjoitetaan nolla. Kertolasku jatkuu, kunnes murto-osaan saadaan puhdas nolla tai tarvittava määrä numeroita. Kirjoittamalla lihavoituja numeroita (kuva 4) ylhäältä alas, saadaan tarvittava luku binäärilukujärjestelmässä: 0. 0011011 .

Siksi voimme kirjoittaa:

0.214 10 =0.0011011 2 .

Esimerkki 8 ... Muunnetaan luku 0,125 desimaalilukujärjestelmästä binäärilukujärjestelmäksi.

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

Jotta luku 0,125 muunnetaan desimaaliluvusta binääriarvoksi, tämä luku kerrotaan peräkkäin kahdella. Kolmannessa vaiheessa se osoittautui 0:ksi. Siksi saatiin seuraava tulos:

0.125 10 =0.001 2 .

Esimerkki 9 ... Muunnetaan luku 0,214 desimaalista heksadesimaalilukuksi 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

Seuraamalla esimerkkejä 4 ja 5, saamme luvut 3, 6, 12, 8, 11, 4. Mutta heksadesimaaliluvussa SS:ssä luvut 12 ja 11 vastaavat numeroita C ja B. Siksi meillä on:

0,214 10 = 0,36C8B4 16.

Esimerkki 10 ... Muunnetaan desimaali desimaaliksi SS-numero 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

Sain:

0.512 10 =0.406111 8 .

Esimerkki 11 ... Muunnetaan luku 159.125 desimaaliluvusta binaariarvoksi SS. Tätä varten käännetään erikseen luvun kokonaislukuosa (esimerkki 4) ja luvun murto-osa (esimerkki 8). Lisäksi yhdistämällä nämä tulokset saamme:

159.125 10 =10011111.001 2 .

Esimerkki 12 ... Muunnetaan luku 19673.214 desimaalista heksadesimaaliksi SS. Tätä varten käännetään erikseen luvun kokonaislukuosa (esimerkki 6) ja luvun murto-osa (esimerkki 9). Lisäksi, yhdistämällä nämä tulokset, saamme.

Voit käyttää Microsoft Windows -käyttöjärjestelmän vakioohjelmistoa. Voit tehdä tämän avaamalla tietokoneesi "Käynnistä"-valikon, napsauttamalla näkyviin tulevassa valikossa "Kaikki ohjelmat", valitsemalla "Standard"-kansion ja etsimällä "Laskin"-sovelluksen siitä. Valitse laskimen ylävalikosta "Näytä" ja sitten "Ohjelmoija". Laskimen muoto muunnetaan.

Anna nyt käännettävä numero. Erikoisikkunassa syöttökentän alla näet numerokoodin käännöksen tuloksen. Joten esimerkiksi syötettyäsi numeron 216, saat tuloksen 1101 1000.

Jos sinulla ei ole tietokonetta tai älypuhelinta käsillä, voit kokeilla itse arabialaisilla numeroilla kirjoitettua numeroa binäärikoodilla. Tätä varten sinun on jaettava luku jatkuvasti kahdella, kunnes viimeinen jäännös on jäljellä tai tulos saavuttaa nollan. Se näyttää tältä (esimerkiksi numero 19):

19: 2 = 9 - loppuosa 1
9: 2 = 4 - loppuosa 1
4: 2 = 2 - jäännös 0
2: 2 = 1 - loppuosa 0
1: 2 = 0 - saavutti 1 (osinko on pienempi kuin jakaja)

Kirjoita loput vastakkaiseen suuntaan - viimeisestä aivan ensimmäiseen. Saat tuloksen 10011 - tämä on numero 19 tuumaa.

Jos haluat muuntaa murto-desimaaliluvun järjestelmään, sinun on ensin muutettava murtoluvun kokonaislukuosa binäärilukujärjestelmäksi, kuten yllä olevassa esimerkissä näkyy. Sitten sinun on kerrottava tavallisen luvun murto-osa binääriluvulla. Tuotteen seurauksena on tarpeen valita koko osa - se vie numeron ensimmäisen numeron arvon järjestelmään desimaalipilkun jälkeen. Algoritmin loppu tapahtuu, kun tuotteen murto-osa katoaa tai kun vaadittu laskentatarkkuus saavutetaan.

Lähteet:

  • Käännösalgoritmit Wikipediassa

Matematiikassa tavanomaisen desimaalilukujärjestelmän lisäksi lukujen esittämiseen on monia muita tapoja, mukaan lukien lomake... Tätä varten käytetään vain kahta merkkiä, 0 ja 1, mikä tekee binäärijärjestelmästä kätevän, kun sitä käytetään erilaisissa digitaalisissa laitteissa.

Ohjeet

Järjestelmät on suunniteltu näyttämään symbolisesti numeroita. Tavallisessa käytetään pääasiassa desimaalijärjestelmää, mikä on erittäin kätevä laskelmissa, myös päässä. Digitaalisten laitteiden, mukaan lukien tietokone, maailmassa, josta on nyt tullut monille toinen koti, yleisimpiä ovat sitten suosion vähentyessä oktaali ja heksadesimaali.

Näillä neljällä järjestelmällä on yksi yhteinen piirre – ne ovat paikannus. Tämä tarkoittaa, että jokaisen numeron merkitys lopullisessa numerossa riippuu siitä, missä asemassa se on. Tästä syystä bittisyvyyden käsite, binäärimuodossa, bittileveyden yksikkö on numero 2, in -10 jne.

On olemassa algoritmeja numeroiden siirtämiseen järjestelmästä toiseen. Nämä menetelmät ovat yksinkertaisia ​​eivätkä vaadi paljon tietoa, mutta näiden taitojen kehittäminen vaatii kätevyyttä, joka voidaan saavuttaa harjoittelemalla.

Luku muunnetaan toisesta numerojärjestelmästä kahdella mahdollisella tavalla: iteratiivisesti jakamalla kahdella tai kirjoittamalla luvun jokainen yksittäinen numero neljän merkin muodossa, jotka ovat taulukkoarvoja, mutta löytyvät itsenäisesti niiden yksinkertaisuus.

Käytä ensimmäistä menetelmää desimaaliluvun muuntamiseen binäärimuotoon. Tämä on sitäkin kätevämpää, koska on helpompi käyttää desimaalilukuja päässäsi.

Muunna esimerkiksi 39 binääriarvoksi Jaa 39 kahdella - saat 19 ja 1 jäännös. Tee vielä muutama iteraatio kahdella jakoa, kunnes se on lopulta nolla, ja kirjoita sillä välin välijäännökset merkkijonoon oikealta vasemmalle. Tuloksena oleva ykkösten ja nollien joukko on lukusi binäärimuodossa: 39/2 = 19 → 1; 19/2 = 9 → 1; 9/2 = 4 → 1; 4/2 = 2 → 0; 2/2 = 1 → 0; 1/2 = 0 → 1 Joten, saimme binääriluvun 111001.

Jos haluat binääristää luvun kannoista 16 ja 8, etsi tai tee näiden järjestelmien jokaiselle digitaaliselle ja symboliselle elementille vastaavat nimitykset. Nimittäin: 0 0000, 1 0001, 2 0010, 3 0011, 4 0100, 5 0101, 6 0110, 7 0111, 8 1000, 9 1001, A 1010, 9 1001, A 1010, B 1011, D 1011, 1 1011, ..

Kirjoita muistiin alkuperäisen numeron jokainen numero tämän taulukon tietojen mukaisesti. Esimerkkejä: oktaaliluku 37 = = 00110111 binäärimuodossa; heksadesimaaliluku 5FEB12 = = 010111111110101100010010 järjestelmä.

Liittyvät videot

Jotkut ei-kokonaisluvut numerot voidaan kirjoittaa desimaalimuodossa. Tässä tapauksessa koko osan erottavan pilkun jälkeen numerot, on tietty määrä numeroita, jotka kuvaavat ei-kokonaislukuosaa numerot... Eri tapauksissa on kätevää käyttää jompaakumpaa desimaalilukua numerot, tai murto-osa. Desimaali numerot voidaan muuntaa murto-osaksi.

Tarvitset

  • kyky pienentää murtolukuja

Ohjeet

Jos nimittäjä on 10, 100 tai tapauksessa 10 ^ n, jossa n on luonnollinen luku, niin murtoluku voidaan kirjoittaa muodossa. Desimaalien määrä määrittää murtoluvun nimittäjän. Se on yhtä suuri kuin 10 ^ n, missä n on merkkien lukumäärä. Joten esimerkiksi 0,3 voidaan kirjoittaa muodossa 3/10, 0,19 19/100 jne.

Jos desimaaliluvun lopussa on yksi tai useampi nolla, nämä nollat ​​voidaan hylätä ja luku, jossa on jäljellä oleva desimaaliluku, voidaan muuntaa murtoluvuksi. Esimerkki: 1,7300 = 1,73 = 173/100.

Liittyvät videot

Lähteet:

  • Desimaalimurtoluvut
  • kuinka käännetään murtoluku

Suurin osa Androidin ohjelmistoista on kirjoitettu Java-ohjelmointikielellä (PL). Järjestelmäkehittäjät tarjoavat myös ohjelmoijille puitteita sovellusten suunnitteluun C / C++-, Python- ja Java Script -kielillä jQuery-kirjaston ja PhoneGapin kautta.

Motodev Studio for Android on rakennettu Eclipsen päälle ja mahdollistaa ohjelmoinnin suoraan Google SDK:sta.

Joidenkin ohjelmien ja koodiosien kirjoittamiseen, joiden suorittaminen vaatii maksimin, voidaan käyttää C / C ++ -kirjastoja. Näiden ohjelmointikielten käyttö on mahdollista Android Native Development Kit -kehittäjille tarkoitetun erityisen paketin kautta, joka on keskittynyt erityisesti sovellusten luomiseen C ++:lla.

Embarcadero RAD Studio XE5:llä voit myös kirjoittaa alkuperäisiä Android-sovelluksia. Samalla yksi Android-laite tai asennettu emulaattori riittää ohjelman testaamiseen. Kehittäjälle tarjotaan myös mahdollisuus kirjoittaa matalan tason moduuleja C / C ++ -kielellä käyttämällä joitain tavallisia Linux-kirjastoja ja Androidille kehitettyä Bionic-kirjastoa.

C / C ++: n lisäksi ohjelmoijat voivat käyttää C #:ää, jonka työkalut ovat hyödyllisiä kirjoitettaessa alkuperäisiä ohjelmia alustalle. Työskentely C #:llä Androidin kanssa on mahdollista Mono- tai Monotouch-käyttöliittymän kautta. Siitä huolimatta alkuperäinen C # -lisenssi maksaa ohjelmoijalle 400 dollaria, mikä on merkityksellistä vain suuria ohjelmistotuotteita kirjoitettaessa.

Puhelinväli

PhoneGapin avulla voit kehittää sovelluksia käyttämällä kieliä, kuten HTML, JavaScript (jQuery) ja CSS. Samalla tälle alustalle luodut ohjelmat soveltuvat muihin leikkaussaleihin ja niitä voidaan muokata muille laitteille ilman lisämuutoksia ohjelmakoodiin. PhoneGapin avulla Android-kehittäjät voivat käyttää JavaScriptiä koodin ja HTML:n kirjoittamiseen CSS:n avulla merkintöjen luomiseen.

SL4A-ratkaisu mahdollistaa skriptikielien käytön kirjallisesti. Ympäristön avulla on tarkoitus ottaa käyttöön sellaiset ohjelmointikielet kuin Python, Perl, Lua, BeanShell, JRuby jne. SL4A:ta ohjelmissaan tällä hetkellä käyttävien kehittäjien määrä on kuitenkin pieni, ja projekti on vielä testausvaiheessa.

Lähteet:

  • Puhelinväli

Binäärikoodi on tapa tallentaa tietoa ykkösten ja nollien muodossa. Tämä on paikannus, jonka kanta on 2. Nykyään binäärikoodia (hieman alla oleva taulukko sisältää joitain esimerkkejä numeroiden kirjoittamisesta) käytetään poikkeuksetta kaikissa digitaalisissa laitteissa. Sen suosio johtuu tämän tallennusmuodon korkeasta luotettavuudesta ja yksinkertaisuudesta. Binaariaritmetiikka on hyvin yksinkertaista, ja näin ollen se on helppo toteuttaa laitteistotasolla. komponentit (tai kuten niitä kutsutaan myös - loogisiksi) ovat erittäin luotettavia, koska ne toimivat vain kahdessa tilassa: loogisessa yksikössä (virta on) ja loogisessa nollassa (virtaa ei ole). Siten ne vertautuvat suotuisasti analogisiin komponentteihin, joiden toiminta perustuu transienttiprosesseihin.

Miten binäärimerkintä muodostetaan?

Katsotaanpa, kuinka tällainen avain muodostuu. Yksi binaarikoodin bitti voi sisältää vain kaksi tilaa: nolla ja yksi (0 ja 1). Kahta numeroa käytettäessä on mahdollista kirjoittaa neljä arvoa: 00, 01, 10, 11. Kolminumeroinen tietue sisältää kahdeksan tilaa: 000, 001 ... 110, 111. Tuloksena saadaan, että binäärikoodi riippuu numeroiden määrästä. Tämä lauseke voidaan kirjoittaa seuraavalla kaavalla: N = 2m, jossa: m on numeroiden lukumäärä ja N on yhdistelmien lukumäärä.

Binäärikoodien tyypit

Mikroprosessoreissa tällaisia ​​avaimia käytetään erilaisten käsiteltyjen tietojen tallentamiseen. Binaarikoodin bittisyvyys voi merkittävästi ylittää sen sisäisen muistin. Tällaisissa tapauksissa pitkät numerot vievät useita tallennuspaikkoja ja niitä käsitellään useilla komennoilla. Tässä tapauksessa kaikki muistisektorit, jotka on varattu monitavuiselle binäärikoodille, katsotaan yhdeksi numeroksi.

Riippuen tarpeesta antaa tämä tai tämä tieto, erotetaan seuraavat avaimet:

  • allekirjoittamaton;
  • suorat kokonaislukumerkkikoodit;
  • allekirjoitettu selkä;
  • ikoninen lisä;
  • harmaa koodi;
  • Gray-Express koodi .;
  • murtolukukoodit.

Tarkastellaan jokaista niistä yksityiskohtaisemmin.

Allekirjoittamaton binaari

Katsotaanpa, mikä tämän tyyppinen tallennus on. Etumerkittömissä kokonaislukukoodeissa jokainen numero (binääri) edustaa kahden potenssia. Tässä tapauksessa pienin tähän muotoon kirjoitettava luku on nolla ja suurin voidaan esittää seuraavalla kaavalla: M = 2 p -1. Nämä kaksi numeroa määrittelevät täysin avainalueen, jota voidaan käyttää ilmaisemaan tällainen binäärikoodi. Pohditaanpa mainitun rekisteröintimuodon mahdollisuuksia. Käytettäessä tämän tyyppistä kahdeksasta bitistä koostuvaa etumerkittömiä avaimia mahdollisten lukujen alue on 0-255. 16-bittisen koodin alue on 0-65535. Kahdeksanbittisissä prosessoreissa käytetään kahta muistisektoria. tallentaa ja kirjoittaa sellaisia ​​numeroita, jotka sijaitsevat vierekkäisissä kohteissa ... Työskentely tällaisten näppäinten kanssa tapahtuu erityisillä komennoilla.

Suorat kokonaislukumerkityt koodit

Tällaisissa binääriavaimissa eniten merkitsevää bittiä käytetään tallentamaan luvun etumerkki. Nolla on positiivinen ja yksi negatiivinen. Tämän bitin käyttöönoton seurauksena koodattujen lukujen alue siirtyy negatiiviselle puolelle. Osoittautuu, että kahdeksanbittinen etumerkillä varustettu kokonaislukubinääriavain voi kirjoittaa numeroita välillä -127 - +127. 16-bittinen - välillä -32767 - +32767. Kahdeksanbittisissä mikroprosessoreissa tällaisten koodien tallentamiseen käytetään kahta vierekkäistä sektoria.

Tämän merkintämuodon haittana on, että avaimen allekirjoitetut ja digitaaliset numerot on käsiteltävä erikseen. Näillä koodeilla toimivien ohjelmien algoritmit ovat hyvin monimutkaisia. Merkin bittien muuttamiseksi ja korostamiseksi on tarpeen käyttää tämän symbolin peittomekanismeja, mikä myötävaikuttaa ohjelmiston koon jyrkäseen kasvuun ja sen suorituskyvyn heikkenemiseen. Tämän epäkohdan poistamiseksi otettiin käyttöön uudenlainen avain - käänteinen binäärikoodi.

Allekirjoitettu käänteinen avain

Tämä merkintämuoto eroaa suorista koodeista vain siinä, että siinä oleva negatiivinen luku saadaan kääntämällä kaikki avaimen numerot. Tässä tapauksessa digitaali- ja etumerkkinumerot ovat identtiset. Tästä johtuen tämän tyyppisen koodin kanssa työskentelyn algoritmit yksinkertaistuvat huomattavasti. Käänteinen avain vaatii kuitenkin erityisen algoritmin ensimmäisen numeron merkin tunnistamiseksi ja luvun itseisarvon laskemiseksi. Ja myös tuloksena olevan arvon merkin palauttaminen. Lisäksi numeroiden käänteis- ja eteenpäinkoodeissa käytetään kahta näppäintä nollan kirjoittamiseen. Vaikka tällä arvolla ei ole positiivista tai negatiivista merkkiä.

Signedin komplementtibinääriluku

Tämän tyyppisellä tietueella ei ole lueteltuja aiempien avainten haittoja. Tällaiset koodit mahdollistavat sekä positiivisten että negatiivisten lukujen suoran summauksen. Tässä tapauksessa merkkipurkauksen analyysiä ei suoriteta. Kaiken tämän tekee mahdolliseksi se, että täydentävät numerot edustavat luonnollista symbolien rengasta, eivät keinotekoisia muodostelmia, kuten eteen- ja taaksepäin-näppäimiä. Tärkeä tekijä on lisäksi se, että binäärikomplementtilaskelmien suorittaminen on erittäin helppoa. Tätä varten riittää, kun lisäät yksikön peruutusnäppäimeen. Käytettäessä tämäntyyppistä kahdeksasta numerosta koostuvaa merkkikoodia mahdollisten numeroiden alue on -128 - +127. 16-bittisellä avaimella on alue -32768 - +32767. Kahdeksanbittisissä prosessoreissa tällaisten numeroiden tallentamiseen käytetään myös kahta vierekkäistä sektoria.

Binaarikomplementti on mielenkiintoinen havaitun vaikutuksen kannalta, jota kutsutaan merkkien etenemisilmiöksi. Katsotaanpa mitä tämä tarkoittaa. Tämä vaikutus johtuu siitä, että muunnettaessa yhden tavun arvoa kaksitavuiseksi arvoksi riittää, että jokainen korkean tavun bitti määritetään matalan tavun etumerkkibittien arvoille. Osoittautuu, että merkittävimmät bitit voidaan käyttää allekirjoitetun tallentamiseen. Tässä tapauksessa avaimen arvo ei muutu ollenkaan.

Harmaa koodi

Tämä tallennusmuoto on itse asiassa yksivaiheinen näppäin. Toisin sanoen arvosta toiseen siirtyessä vain yksi informaation bitti muuttuu. Tässä tapauksessa virhe tietojen lukemisessa johtaa siirtymiseen paikasta toiseen pienellä ajassa. Täysin väärän tuloksen saaminen kulma-asennosta tällaisessa prosessissa on kuitenkin täysin poissuljettu. Tällaisen koodin etuna on sen kyky peilata tietoa. Esimerkiksi kääntämällä merkittävimmät bitit, voit yksinkertaisesti muuttaa näytteen suuntaa. Tämä johtuu komplementin ohjaustulosta. Tässä tapauksessa lähtöarvo voi olla joko kasvava tai laskeva akselin yhdellä fyysisellä pyörimissuunnalla. Koska Gray-näppäimeen tallennetut tiedot ovat yksinomaan koodattuja luonnossa, mikä ei sisällä todellista numeerista tietoa, ennen jatkotyöskentelyä se on ensin muutettava tavanomaiseen binäärimuotoon. Tämä tehdään erityisellä muuntimella - Gray-Binar-dekooderilla. Tämä laite on helppo toteuttaa peruslogiikkaporteilla sekä laitteistossa että ohjelmistossa.

Harmaa pikakoodi

Tavallinen yksivaiheinen näppäin Harmaa sopii ratkaisuihin, jotka esitetään numeroina, kaksi. Tapauksissa, joissa on tarpeen toteuttaa muita ratkaisuja, vain keskiosa leikataan pois ja käytetään tästä tallennusmuodosta. Tämän seurauksena yksivaiheinen avain säilyy. Tällaisessa koodissa numeroalueen alku ei kuitenkaan ole nolla. Sitä siirretään määritetyn arvon verran. Tietojen käsittelyn aikana generoiduista pulsseista vähennetään puolet alkuperäisen ja pienennetyn resoluution erosta.

Kiinteän pisteen binäärinen murtolukuesitys

Työprosessissa on operoitava paitsi kokonaislukujen, myös murto-osien kanssa. Tällaisia ​​numeroita voidaan kirjoittaa käyttämällä eteenpäin-, taaksepäin- ja täydentäviä koodeja. Mainittujen avainten rakenneperiaate on sama kuin kokonaislukujen. Tähän asti olemme olettaneet, että binääripilkun tulee olla vähiten merkitsevän bitin oikealla puolella. Mutta näin ei ole. Se voi sijaita sekä merkitsevimmän bitin vasemmalla puolella (tässä tapauksessa muuttujaksi voidaan kirjoittaa vain murtolukuja) että muuttujan keskellä (voidaan kirjoittaa sekaarvoja).

Liukulukubinäärikoodiesitys

Tätä muotoa käytetään kirjoittamiseen, tai päinvastoin - hyvin pieni. Esimerkkinä ovat tähtienväliset etäisyydet tai atomien ja elektronien koko. Tällaisia ​​arvoja laskettaessa joutuisi käyttämään binäärikoodia, jolla on erittäin suuri bittisyvyys. Meidän ei kuitenkaan tarvitse ottaa kosmista etäisyyttä millimetrin tarkkuudella huomioon. Siksi kiinteän pisteen muoto on tehoton tässä tapauksessa. Algebrallista muotoa käytetään tällaisten koodien näyttämiseen. Toisin sanoen luku kirjoitetaan mantissaksi kerrottuna kymmenellä potenssiin, joka kuvastaa luvun haluttua järjestystä. Sinun tulee tietää, että mantissa ei saa olla enempää kuin yksi, eikä nollaa saa kirjoittaa pilkun jälkeen.

Saksalaisen matemaatikko Gottfried Leibnizin uskotaan keksineen binaarilasken 1700-luvun alussa. Kuten tutkijat äskettäin havaitsivat, Mangareva käytti kuitenkin tämän tyyppistä aritmetiikkaa kauan ennen Polynesian saarta. Huolimatta siitä, että kolonisaatio tuhosi alkuperäiset numerointijärjestelmät lähes kokonaan, tutkijat ovat palauttaneet monimutkaiset binääri- ja desimaalilaskennan muodot. Lisäksi kognitiivinen tutkija Nunez väittää, että binäärikoodausta käytettiin muinaisessa Kiinassa jo 800-luvulla eKr. NS. Muut muinaiset sivilisaatiot, kuten Maya-intiaanit, käyttivät myös monimutkaisia ​​desimaali- ja binäärijärjestelmien yhdistelmiä aikavälien ja tähtitieteellisten ilmiöiden seuraamiseen.

Kutsutaan merkkijoukkoa, jolla tekstiä kirjoitetaan aakkoset.

Aakkosten merkkien määrä on hänen tehoa.

Kaava tiedon määrän määrittämiseksi: N = 2 b,

missä N on aakkosten kardinaalisuus (merkkien määrä),

b - bittien lukumäärä (merkin tietopaino).

Aakkoset, joiden kapasiteetti on 256 merkkiä, voivat sisältää melkein kaikki tarvittavat merkit. Tätä aakkosta kutsutaan riittävä.

Koska 256 = 2 8, silloin 1 merkin paino on 8 bittiä.

8-bittinen yksikkö nimettiin 1 tavu:

1 tavu = 8 bittiä.

Tietokonetekstin jokaisen merkin binäärikoodi vie 1 tavun muistia.

Miten tekstitieto esitetään tietokoneen muistissa?

Merkkien tavukoodauksen mukavuus on ilmeinen, koska tavu on muistin pienin osoitettavissa oleva osa ja siksi prosessori voi käyttää jokaista merkkiä erikseen suorittamalla tekstinkäsittelyn. Toisaalta 256 merkkiä on varsin riittävä määrä edustamaan monenlaista merkkitietoa.

Nyt herää kysymys, millainen kahdeksanbittinen binäärikoodi liitetään kuhunkin merkkiin.

On selvää, että tämä on ehdollinen asia, voit keksiä monia koodausmenetelmiä.

Kaikki tietokoneen aakkosten merkit on numeroitu 0 - 255. Jokainen numero vastaa kahdeksannumeroista binaarikoodia 00000000 - 11111111. Tämä koodi on yksinkertaisesti binäärijärjestelmän merkin järjestysnumero.

Taulukkoa, jossa kaikki tietokoneen aakkosten merkit on määritetty sarjanumeroiksi, kutsutaan koodaustaulukoksi.

Erityyppisille tietokoneille käytetään erilaisia ​​koodaustaulukoita.

PC:n kansainvälinen standardi on tullut pöytään ASCII(lue asci) (American Standard Code for Information Interchange).

ASCII-taulukko on jaettu kahteen osaan.

Kansainvälinen standardi on vain taulukon ensimmäinen puolisko, ts. symbolit numeroilla alkaen 0 (00000000), enintään 127 (01111111).

ASCII-koodaustaulukkorakenne

Sarjanumero

Koodi

Symboli

0 - 31

00000000 - 00011111

Symboleja, joiden numerot ovat 0-31, kutsutaan yleensä ohjausmerkeiksi.
Niiden tehtävänä on ohjata tekstin näyttämistä näytöllä tai tulostamista, äänimerkin antamista, tekstin merkitsemistä jne.

32 - 127

00100000 - 01111111

Pöydän vakioosa (englanniksi). Tämä sisältää latinalaisten aakkosten pienet ja isot kirjaimet, desimaalinumerot, välimerkit, kaikenlaiset hakasulut, kaupalliset ja muut symbolit.
Merkki 32 on välilyönti, ts. tyhjä paikka tekstissä.
Kaikki muut heijastuvat tietyissä merkeissä.

128 - 255

10000000 - 11111111

Taulukon vaihtoehtoinen osa (venäjä).
ASCII-kooditaulukon toisella puoliskolla, jota kutsutaan koodisivuksi (128 koodia alkaen 10000000 ja päättyen numeroon 11111111), voi olla erilaisia ​​muunnelmia, jokaisella versiolla on oma numeronsa.
Koodisivua käytetään ensisijaisesti muiden kansallisten aakkosten kuin latinalaisten aakkosten sisällyttämiseen. Venäjän kansallisissa koodauksissa tämä taulukon osa sisältää venäläisten aakkosten symboleja.

ASCII-taulukon ensimmäinen puolisko


Kiinnitän huomionne siihen, että koodaustaulukossa kirjaimet (isot ja pienet) on järjestetty aakkosjärjestykseen ja numerot nousevaan arvojen järjestykseen. Tätä leksikografisen järjestyksen noudattamista merkkien järjestelyssä kutsutaan aakkosten peräkkäisen koodauksen periaatteeksi.

Venäjän aakkosten kirjaimissa noudatetaan myös peräkkäisen koodauksen periaatetta.

ASCII-taulukon toinen puolisko


Valitettavasti tällä hetkellä on olemassa viisi erilaista kyrillistä koodausta (KOI8-R, Windows. MS-DOS, Macintosh ja ISO). Tästä johtuen venäjänkielisen tekstin siirtämisessä tietokoneelta toiselle, ohjelmistojärjestelmästä toiseen syntyy usein ongelmia.

Kronologisesti yksi ensimmäisistä standardeista venäläisten kirjainten koodaamiseen tietokoneissa oli KOI8 ("Tiedonvaihtokoodi, 8-bittinen"). Tätä koodausta käytettiin jo 70-luvulla ES-tietokonesarjan tietokoneissa, ja 80-luvun puolivälistä lähtien sitä alettiin käyttää UNIX-käyttöjärjestelmän ensimmäisissä venäläistetyissä versioissa.

90-luvun alusta, MS DOS -käyttöjärjestelmän dominanssiajasta, CP866-koodaus säilyy ("CP" tarkoittaa "koodisivua").

Apple-tietokoneet, joissa on Mac OS, käyttävät omaa Mac-koodausta.

Lisäksi Kansainvälinen standardointijärjestö (International Standards Organization, ISO) hyväksyi venäjän kielen standardiksi toisen koodauksen nimeltä ISO 8859-5.

Tällä hetkellä yleisin koodaus on Microsoft Windows, lyhenne CP1251.

90-luvun lopulta lähtien merkkikoodauksen standardoinnin ongelma on ratkaistu ottamalla käyttöön uusi kansainvälinen standardi, ns. Unicode... Tämä on 16-bittinen koodaus eli se varaa 2 tavua muistia jokaiselle merkille. Tämä tietysti kaksinkertaistaa käytetyn muistin määrän. Mutta toisaalta, tällainen kooditaulukko sallii jopa 65536 merkin sisällyttämisen. Unicode-standardin täydellinen spesifikaatio sisältää kaikki maailman olemassa olevat, sukupuuttoon kuolleet ja keinotekoisesti luodut aakkoset sekä monet matemaattiset, musiikilliset, kemialliset ja muut symbolit.

Yritetään käyttää ASCII-taulukkoa kuvitellaksesi, miltä sanat näyttävät tietokoneen muistissa.

Sanojen sisäinen esitys tietokoneen muistissa

Joskus käy niin, että venäläisten aakkosten kirjaimista koostuvaa tekstiä, joka on saatu toisesta tietokoneesta, ei voida lukea - näytön näytöllä näkyy jonkinlainen "sisarus". Tämä johtuu siitä, että tietokoneet käyttävät venäjän kielen merkkien erilaista koodausta.

08. 06.2018

Dmitri Vassiyarovin blogi.

Binäärikoodi - missä ja miten sitä käytetään?

Tänään olen erityisen iloinen saadessani tavata teidät, rakkaat lukijani, koska tunnen olevani opettaja, joka jo ensimmäisellä oppitunnilla alkaa tutustuttaa luokkaa kirjaimiin ja numeroihin. Ja koska elämme digitaalisten teknologioiden maailmassa, kerron teille, mikä on binäärikoodi, joka on niiden perusta.

Aloitetaan terminologiasta ja selvitetään, mitä binääri tarkoittaa. Selvyyden vuoksi palataan tavalliseen laskelmaan, jota kutsutaan "desimaaliluvuksi". Käytämme siis 10 numeroa, jotka mahdollistavat kätevästi eri numeroiden käytön ja vastaavan kirjaamisen. Tämän logiikan mukaisesti binäärijärjestelmä käyttää vain kahta merkkiä. Meidän tapauksessamme se on vain "0" (nolla) ja "1" yksi. Ja tässä haluan varoittaa, että hypoteettisesti niiden sijaan voisi olla muita sopimuksia, mutta juuri sellaiset arvot, jotka ilmaisevat poissaolon (0, tyhjä) ja signaalin läsnäolon (1 tai "tikku"), auttavat meitä ymmärtää paremmin binäärikoodin rakennetta.

Miksi tarvitsen binääriä?

Ennen tietokoneiden tuloa käytettiin erilaisia ​​automaattisia järjestelmiä, joiden toimintaperiaate perustuu signaalin vastaanottamiseen. Anturi laukeaa, piiri suljetaan ja tietty laite kytketään päälle. Ei virtaa signaalipiirissä - ei aktivointia. Elektroniset laitteet edistyivät piirissä olevan jännitteen läsnäolon tai puuttumisen edustamien tietojen käsittelyssä.

Niiden lisämutkaisuus johti ensimmäisten prosessorien ilmestymiseen, jotka myös tekivät työnsä prosessoimalla signaalia, joka koostui jo tietyllä tavalla vuorottelevista pulsseista. Emme nyt syvenny ohjelman yksityiskohtiin, mutta seuraava on meille tärkeää: elektroniset laitteet pystyivät erottamaan tietyn saapuvien signaalien sarjan. Tietysti ehdollista yhdistelmää voidaan kuvata näin: "on signaali"; "ei signaalia"; "On signaali"; "On signaali." Voit jopa yksinkertaistaa merkintää: "on"; "Ei"; "on"; "on".

Mutta on paljon helpompaa määrittää signaalin läsnäolo yhdellä "1" ja sen puuttuminen nollalla "0". Sitten kaiken tämän sijasta voimme käyttää yksinkertaista ja tiivistä binaarilukua: 1011.

Epäilemättä prosessoritekniikka on ottanut suuria harppauksia eteenpäin ja nyt sirut pystyvät havaitsemaan signaalisarjan lisäksi kokonaisia ​​ohjelmia, jotka on kirjoitettu erityisillä yksittäisistä merkeistä koostuvilla komennoilla. Mutta niiden tallentamiseen käytetään samaa binaarikoodia, joka koostuu nollista ja ykkösistä, mikä vastaa signaalin olemassaoloa tai puuttumista. Onko hän vai ei, sillä ei ole väliä. Sirulle mikä tahansa näistä vaihtoehdoista on yksittäinen tieto, jota kutsutaan "bitiksi" (bitti on virallinen mittayksikkö).

Perinteisesti merkki voidaan koodata useiden merkkien sarjana. Vain neljää muunnelmaa voidaan kuvata kahdella signaalilla (tai niiden puuttuessa): 00; 01; 10; 11. Tätä koodausmenetelmää kutsutaan kaksibittiseksi. Mutta se voi olla:

  • nelibittinen (kuten yllä olevan kappaleen 1011 esimerkissä) mahdollistaa 2 ^ 4 = 16 merkkiyhdistelmien kirjoittamisen;
  • kahdeksanbittinen (esimerkiksi: 0101 0011; 0111 0001). Kerran se oli eniten kiinnostava ohjelmoinnin kannalta, koska se kattoi 2 ^ 8 = 256 arvoa. Tämä mahdollisti kaikkien desimaalilukujen, latinalaisten aakkosten ja erikoismerkkien kuvaamisen;
  • kuusitoista-bittinen (1100 1001 0110 1010) ja enemmän. Mutta tämän pituiset tietueet ovat jo nykyaikaisia ​​monimutkaisempia tehtäviä varten. Nykyaikaiset prosessorit käyttävät 32- ja 64-bittistä arkkitehtuuria;

Suoraan sanottuna ei ole olemassa yhtä virallista versiota, niin tapahtui, että kahdeksan merkin yhdistelmästä on tullut tallennetun tiedon vakiomitta, nimeltään "tavu". Tätä voitaisiin soveltaa jopa yhteen kirjaimeen, joka on kirjoitettu 8-bittisellä binäärikoodilla. Joten, rakkaat ystäväni, muistakaa (jos joku ei tiennyt):

8 bittiä = 1 tavu.

Joten se hyväksytään. Vaikka 2- tai 32-bittisenä arvona kirjoitettua merkkiä voidaan nimellisesti kutsua myös tavuksi. Muuten, binäärikoodin ansiosta voimme arvioida tiedostojen koon tavuina mitattuna sekä tiedon ja Internetin siirron nopeuden (bittiä sekunnissa).

Binäärinen koodaus toiminnassa

Tietojen tallennuksen standardoimiseksi tietokoneita varten on kehitetty useita koodausjärjestelmiä, joista yksi, 8-bittiseen tallennukseen perustuva ASCII on yleistynyt. Sen arvot jaetaan erityisellä tavalla:

  • ensimmäiset 31 merkkiä ovat ohjausmerkkejä (00000000 - 00011111). Tarjoa huoltokomentoja, tulostusta tulostimelle tai näytölle, äänisignaaleja, tekstin muotoilua;
  • seuraava 32 - 127 (00100000 - 01111111) latinalaiset aakkoset ja apusymbolit ja välimerkit;
  • loput, 255. asti (10000000 - 11111111) - vaihtoehtoinen taulukon osa erityistehtäville ja kansallisten aakkosten näyttämiseen;

Siinä olevien arvojen dekoodaus on esitetty taulukossa.

Jos luulet, että "0" ja "1" sijaitsevat kaoottisessa järjestyksessä, olet syvästi väärässä. Käyttäen mitä tahansa numeroa esimerkkinä, näytän sinulle mallin ja opetan sinulle kuinka lukea binäärikoodilla kirjoitettuja numeroita. Mutta tätä varten hyväksymme joitain sopimuksia:

  • 8 merkin tavu luetaan oikealta vasemmalle;
  • jos tavallisissa luvuissa käytetään numeroita ykkösiä, kymmeniä, satoja, niin tässä (luettaessa käänteisessä järjestyksessä) jokaiselle bitille esitetään eri potenssit "kaksi": 256-124-64-32-16-8-4-2 -1;
  • nyt tarkastellaan luvun binäärikoodia, esimerkiksi 00011011. Jos vastaavassa paikassa on signaali "1", otamme tämän bitin arvot ja summaamme ne tavalliseen tapaan. Vastaavasti: 0 + 0 + 0 + 32 + 16 + 0 + 2 + 1 = 51. Voit varmistaa tämän menetelmän oikeellisuuden katsomalla kooditaulukkoa.

Nyt, utelias ystäväni, te ette vain tiedä mitä binäärikoodi on, vaan tiedätte myös kuinka muuttaa sen salaamat tiedot.

Nykytekniikan ymmärtämä kieli

Tietenkin prosessorilaitteiden binaarikoodin lukemisen algoritmi on paljon monimutkaisempi. Mutta toisaalta, voit käyttää sitä kirjoittaaksesi mitä tahansa haluat:

  • tekstitiedot muotoiluvaihtoehdoilla;
  • numerot ja mahdolliset toiminnot niillä;
  • graafiset ja videokuvat;
  • äänet, mukaan lukien ne, jotka ylittävät kuuluvuusrajat;

Lisäksi "esityksen" yksinkertaisuuden vuoksi ovat mahdollisia erilaisia ​​tapoja tallentaa binääritietoja: HDD-levyt;

Binaarikoodauksen etuja täydentävät lähes rajattomat mahdollisuudet siirtää tietoa minkä tahansa etäisyyden päähän. Tätä viestintämenetelmää käytetään avaruusalusten ja keinotekoisten satelliittien kanssa.

Joten nykyään binäärilukujärjestelmä on kieli, jota useimmat käyttämämme elektroniset laitteet ymmärtävät. Ja mikä mielenkiintoisinta, sille ei ole vielä suunniteltu muuta vaihtoehtoa.

Luulen, että aluksi hahmottelemani tiedot riittävät sinulle. Ja sitten, jos tällainen tarve ilmenee, jokainen voi sukeltaa itsenäiseen tutkimukseen tästä aiheesta. Sanon hyvästit ja lyhyen tauon jälkeen valmistelen sinulle blogissani uuden artikkelin mielenkiintoisesta aiheesta.

Parempi jos kerrot sen itse ;)

Nähdään pian.