Почетна » како да » Зашто енглеским ликовима треба мање бајтова да их представљају него ликове у другим писмима?

    Зашто енглеским ликовима треба мање бајтова да их представљају него ликове у другим писмима?

    Иако већина нас вероватно никада није престала да размишља о томе, абецедни знакови нису сви исте величине у броју бајтова које је потребно за њихово представљање. Али зашто? Данашњи пост СуперУсер К&А има одговоре на занимљиво питање читатеља.

    Данашња сесија питања и одговора долази нам захваљујући СуперУсер-у - подјела Стацк Екцханге-а, груписане од стране заједнице веб-локација за питања и одговоре.

    Делимична слика екрана АСЦИИ графикона захваљујући Википедији.

    Питање

    Читач СуперУсер кхајвах жели да зна зашто различите абецеде заузимају различите количине дисковног простора када се сачувају:

    Када ставим 'а' у текстуалну датотеку и сачувам је, она је величине 2 бајта. Али када ставим знак као 'ա' (слово из арменске абецеде), он чини величину од 3 бајта.

    Која је разлика између алфабета на рачунару? Зашто енглески језик заузима мање простора када се спрема?

    Слова су слова, зар не? Можда не! Шта је одговор на ову абецедну мистерију?

    Одговор

    СуперУсер сарадници Докторо Реицхард и ерние имају одговор за нас. Прво горе, Докторо Реицхард:

    Једна од првих шема кодирања које треба развити за употребу у главним рачунарима је АСЦИИ (Америцан Стандард Цоде за размјену информација) стандард. Развијен је 1960-их у Сједињеним Државама.

    Енглеска абецеда користи део латинске абецеде (на пример, има неколико акцентованих речи на енглеском језику). Постоји 26 појединачних слова у тој абецеди, не узимајући у обзир случај. Такође би требало да постоје појединачни бројеви и знакови интерпункције у било којој шеми која се претвара да кодира енглеску абецеду.

    Шездесете су такође биле време када компјутери нису имали количину меморије или простора на диску који сада имамо. АСЦИИ је развијен да буде стандардни приказ функционалне абецеде на свим америчким рачунарима. У то време, одлука о томе да сваки АСЦИИ карактер има 8 бита (1 бајт) је направљен због техничких детаља тог времена (чланак у Википедији помиње чињеницу да је перфорирана трака држала 8 битова у једном положају). У ствари, оригинална АСЦИИ схема се може пренијети користећи 7 бита, а осми се може користити за провјеру паритета. Каснија дешавања проширила су оригиналну АСЦИИ схему на неколико акценатних, математичких и терминалних знакова.

    Са недавним повећањем употребе рачунара широм света, све више и више људи са различитих језика имало је приступ компјутеру. То је значило да се за сваки језик морају развити нове шеме кодирања, независно од других шема, које би се сукобљавале ако би се читале са различитих језичких терминала..

    Уницоде је настао као решење за постојање различитих терминала спајањем свих могућих значајних знакова у један апстрактни скуп знакова.

    УТФ-8 је један од начина за кодирање Уницоде скупа знакова. То је кодирање променљиве ширине (тј. Различити знакови могу имати различите величине) и дизајнирано је за компатибилност са претходном АСЦИИ схемом. Као такав, АСЦИИ скуп знакова ће остати величине једног бајта, док ће било који други знак бити два или више бајта у величини. УТФ-16 је још један начин да се кодира Уницоде скуп знакова. У поређењу са УТФ-8, знакови се кодирају као скуп од једне или две 16-битне јединице кода.

    Као што је наведено у другим коментарима, знак 'а' заузима један бајт док 'ա' заузима два бајта, што означава УТФ-8 кодирање. Додатни бајт у оригиналном питању је због постојања знака за нови ред на крају.

    Следи одговор од Ернија:

    1 бајт је 8 бита и може представљати до 256 (2 ^ 8) различитих вредности.

    За језике који захтевају више могућности од тога, једноставно пресликавање од 1 до 1 не може да се одржава, тако да је потребно више података за складиштење карактера.

    Имајте на уму да већина кодирања користи првих 7 битова (128 вредности) за АСЦИИ знакове. То оставља 8. бит, или 128 више вредности за више знакова. Додајте акцентоване знакове, азијске језике, ћирилицу, итд. И лако ћете видети зашто 1 бајт није довољан за држање свих знакова.


    Имате ли нешто да додате објашњењу? Звучи у коментарима. Желите ли прочитати више одговора од других технолошки паметних Стацк Екцханге корисника? Погледајте цео дискусију овде.