Kotisivu » miten » Miksi englantilaiset merkit tarvitsevat vähemmän bittejä edustamaan niitä kuin muiden aakkosien merkkejä?

    Miksi englantilaiset merkit tarvitsevat vähemmän bittejä edustamaan niitä kuin muiden aakkosien merkkejä?

    Vaikka useimmat meistä ovat luultavasti koskaan lopettaneet miettimään sitä, aakkosmerkit eivät ole yhtä suuria kuin niiden edustamien tavujen lukumäärä. Mutta miksi se on? Tämän päivän SuperUser Q&A -postissa on vastaukset utelias lukijan kysymykseen.

    Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..

    Osittainen ASCII-kuvakaavio Wikipediasta.

    Kysymys

    SuperUser-lukija khajvah haluaa tietää, miksi eri aakkoset vievät eri määriä levytilaa tallennettaessa:

    Kun laitan "a" -tekstitiedostoon ja tallennan sen, se tekee siitä 2 tavua. Mutta kun laitan merkin, kuten 'ա' (armenialainen kirjain), se tekee siitä 3 tavua kokoa.

    Mitä eroa on aakkosien välillä tietokoneessa? Miksi Englanti vie vähemmän tilaa tallennettaessa?

    Kirjeet ovat kirjaimia, eikö? Ehkä ei! Mikä on vastaus tähän aakkosjärjestykseen??

    Vastaus

    SuperUserin avustajat Doktoro Reichard ja ernie ovat vastaus meille. Ensinnäkin, Doktoro Reichard:

    Yksi ensimmäisistä koodausjärjestelyistä, jotka on kehitettävä käytettäväksi yleisissä tietokoneissa, on ASCII (Amerikan standardi tiedonvaihtokoodi) standardi. Se kehitettiin 1960-luvulla Yhdysvalloissa.

    Englanninkielisessä aakkosessa käytetään osaa latinalaisesta aakkosesta (esimerkiksi englanniksi on muutama aksenttinen sana). Tässä aakkosessa on 26 yksittäistä kirjainta, jotka eivät ota huomioon tapausta. Ja siinä olisi myös oltava yksilölliset numerot ja välimerkit missä tahansa järjestelmässä, joka teeskentelee englanninkielisen aakkosen koodaamista.

    1960-luku oli myös aika, jolloin tietokoneilla ei ollut nyt muistia tai levytilaa. ASCII on kehitetty toimimaan normaalina funktionaalisena aakkosena kaikissa amerikkalaisissa tietokoneissa. Tuolloin päätös tehdä jokainen ASCII-merkki 8 bittiä (1 tavu) pitkä tehtiin ajan teknisten yksityiskohtien vuoksi (Wikipedia-artikkelissa mainitaan, että rei'itetty nauha sisältää 8 bittiä kerrallaan). Itse asiassa alkuperäinen ASCII-järjestelmä voidaan lähettää 7 bittiä käyttäen ja kahdeksasosaa voitaisiin käyttää pariteettitarkastuksiin. Myöhemmin tapahtunut kehitys laajensi alkuperäistä ASCII-järjestelmää useisiin aksentteihin, matemaattisiin ja päätelaitteisiin.

    Viime aikoina lisääntynyt tietokoneiden käyttö kaikkialla maailmassa, yhä useammat ihmiset eri kielistä pääsivät tietokoneeseen. Tämä merkitsi sitä, että kullekin kielelle oli kehitettävä uusia koodausjärjestelmiä muista järjestelmistä riippumatta, jotka olisivat ristiriidassa eri kieliterminaalien lukemisen kanssa.

    Unicode syntyi ratkaisuna eri päätelaitteiden olemassaoloon yhdistämällä kaikki mahdolliset merkitykselliset merkit yhdeksi abstraktiksi merkistöksi.

    UTF-8 on yksi tapa koodata Unicode-merkistöä. Se on muuttuvan leveyden koodaus (ts. Eri merkit voivat olla eri kokoisia) ja se on suunniteltu taaksepäin yhteensopivaksi entisen ASCII-järjestelmän kanssa. Siten ASCII-merkistö pysyy yhden tavun kokoisena, kun taas muut merkit ovat kaksi tai useampia tavuja. UTF-16 on toinen tapa koodata Unicode-merkistöä. UTF-8: een verrattuna merkit koodataan joko yhden tai kahden 16-bittisen koodin yksikkönä.

    Kuten muissa kommenteissa todetaan, "a" -merkki on yksi tavu, kun taas "ա" on kaksi tavua, mikä merkitsee UTF-8-koodausta. Alkuperäisen kysymyksen ylimääräinen tavu johtui siitä, että lopussa oli uusi rivi.

    Vastaus on ernie:

    1 tavu on 8 bittiä ja voi siten edustaa jopa 256 (2 ^ 8) erilaista arvoa.

    Jos kieliä, jotka tarvitsevat enemmän mahdollisuuksia kuin tässä, yksinkertaista 1–1 kartoitusta ei voida säilyttää, joten merkin tallentamiseen tarvitaan lisää tietoja..

    Huomaa, että useimmissa koodauksissa käytetään ASCII-merkkien ensimmäisiä 7 bittiä (128 arvoa). Se jättää kahdeksannen bitin tai 128 enemmän arvoja useampia merkkejä varten. Lisää aksenttimerkkejä, aasialaisia ​​kieliä, kyrillistä jne. Ja voit helposti nähdä, miksi 1 tavu ei riitä kaikkien merkkien pitämiseen.


    Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.