Кодиране на двоични данни, кодиране на цели и реални числа и кодиране на текстови данни -

Същият проблем за универсален инструмент за кодиране се прилага доста успешно в някои отрасли на технологията, науката и културата. Примерите включват системата за писане на математически изрази, телеграфната азбука, азбуката на морското знаме, брайловата система за незрящи и много други.

Компютърната техника също има своя собствена система - тя се нарича двоично кодиране и се основава на представянето на данните чрез последователност само от два знака: 0 и 1. Тези знаци се наричат ​​двоични цифри, на английски - binary digit или накратко bit (бит).

Един бит може да изрази две понятия: 0 или 1 (да или не, черно или бяло, вярно или невярно и т.н.). Ако броят на битовете се увеличи до два, тогава вече могат да бъдат изразени четири различни концепции:

Три бита могат да кодират осем различни стойности:

000 001 010 011 100 101 110 111

Увеличавайки с една броя на цифрите в двоичната система за кодиране, удвояваме броя на стойностите, които могат да бъдат изразени в тази система, тоест общата формула изглежда така:

където: N е броят на независимите кодирани стойности; m е битовата дълбочина на двоичното кодиране, прието в дадената система.

Кодиране на цели и реални числа и текстови данни

Целите числа се кодират в двоичен код доста просто - просто вземете цяло число и го разделете наполовина, докато остатъкът стане нула или едно. Наборът от остатъци от всяко деление, записани отдясно наляво заедно с последния остатък, образува двоичен аналог на десетично число.

За кодиране на цели числа от 0 до 255 е достатъчно да имате 8 бита двоичен код (8 бита). Шестнадесет бита ви позволяват да кодирате цели числаот 0 до 65535, а 24 бита - вече повече от 16,5 милиона различни стойности.

Използвам 80-битово кодиране за кодиране на реални числа. В този случай числото първо се преобразува в нормализирана форма:

3,1415926 = 0,31415926 * 10 1

300 000 \u003d 0,3 * 10 6

123456789 = 0,123456789 * 1010

Първата част от числото се нарича мантиса, а втората част се нарича характеристика. Повечето от 80-те бита са разпределени за съхраняване на мантисата (заедно със знак) и някакъв фиксиран брой битове са разпределени за съхраняване на характеристиката (също със знак).

Ако всеки знак от азбуката е свързан с определено цяло число (например сериен номер), тогава с помощта на двоичен код може да се кодира и текстова информация. Осем бита са достатъчни за кодиране на 256 различни символа. Това е достатъчно, за да изрази в различни комбинации от осем бита всички символи на английския и българския език, малки и главни букви, както и препинателни знаци, символи за основни аритметични операции и някои често срещани специални знаци, като символа "§".

Технически изглежда много просто, но винаги е имало доста значителни организационни трудности. В ранните години на развитието на компютърните технологии те бяха свързани с липсата на необходимите стандарти, а сега са причинени, напротив, от изобилието от едновременно действащи и противоречащи си стандарти. За да може целият свят да кодира текстови данни по един и същи начин, са необходими унифицирани таблици за кодиране, а това все още е невъзможно поради противоречия между символите на националните азбуки, както и корпоративни противоречия.

За английския език, който зае нишата на международно средство за комуникация, противоречията вече са отстранени. Институт по стандартизация на САЩ (ANSI - американскиНационалният институт по стандартизация въведе системата за кодиране на американския стандартен код за обмен на информация (ASCII). Системата ASCII има две таблици за кодиране - основна и разширена. Базовата таблица фиксира кодови стойности от 0 до 127, а разширената таблица се отнася до знаци с номера от 128 до 255.

Първите 32 кода от базовата таблица, започващи от нула, бяха дадени на производителите на хардуер. Тази област съдържа така наречените контролни кодове, които не съответстват на никакви езикови знаци и съответно тези кодове не се показват нито на екрана, нито на печатащите устройства, но могат да се контролират от това как се извеждат други данни.

Започвайки от код 32 до код 127, има кодове за знаци от английската азбука, препинателни знаци, числа, аритметични операции и някои спомагателни знаци.

Подобни системи за кодиране на текстови данни са разработени в други страни. Така например в СССР в тази област действа системата за кодиране KOI-7 (седемцифрен код за обмен на информация). Поддръжката на производителите на хардуер и софтуер обаче доведе американския ASCII код до нивото на международен стандарт и националните системи за кодиране трябваше да се „оттеглят“ към втората, разширена част от системата за кодиране, която определя стойностите на кодовете от 128 до 255. Липсата на единен стандарт в тази област доведе до множество едновременно действащи кодировки.

Така например символното кодиране на българския език, известно като кодирането на Windows - 1251, е въведено "отвън" - от Microsoft, но предвид широкото разпространение на операционни системи и други продукти на тази компания в България, то е дълбоко вкоренено и намира широко разпространение. Това е кодиранетоизползва се на повечето локални компютри, работещи на платформа Windows.

Международният стандарт, който предвижда кодиране на знаците от българската азбука, се нарича ISO кодиране (Международна организация по стандартизация - Международен институт за стандартизация). На практика това кодиране се използва рядко.

Ако анализираме организационните трудности, свързани със създаването на единна система за кодиране на текстови данни, можем да заключим, че те са причинени от ограничен набор от кодове (256). В същото време е очевидно, че ако например символите са кодирани не от осембитови двоични числа, а от числа с голям брой цифри, тогава диапазонът от възможни кодови стойности ще стане много по-голям.

Такава система, базирана на 16-битово кодиране на знаци, беше наречена универсална - UNICODE. Шестнадесет цифри позволяват предоставянето на уникални кодове за 65 536 различни знака - това поле е достатъчно, за да побере повечето от световните езици в една таблица със знаци.

Простият механичен преход към тази система беше задържан дълго време поради недостатъчни ресурси на компютърно оборудване (в системата за кодиране UNICODE всички текстови документи автоматично стават два пъти по-дълги). През втората половина на 90-те години техническите средства достигнаха необходимото ниво на ресурсна обезпеченост и днес сме свидетели на постепенен преход на документи и софтуер към универсална система за кодиране.