Информатика и ИКТ - Кодиране на информацията

формален език

Езикът е система от обозначения и правила за предаване на съобщения. Разграничете естествените езици, на които хората общуват, и изкуствените (или формални). Официалните езици са езици за програмиране.

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

Азбука е набор от символи (букви ), подредени по определен смисъл в даден език или система. Само знаци, принадлежащи към дадена азбука, могат да се използват за съставяне на думи.

Думата може да се дефинира като подреден набор от знаци в дадена азбука, която има конкретно значение.

Транслатор (от английски translator - преводач) е програма, която превежда програма от един програмен език на друг.

Подсемантика (от гръцки semantikos - обозначаващ) се разбира значението на всяка синтактична конструкция в език или система.

В езика за програмиране транслаторът превежда синтактичните конструкции на езика за програмиране в команди, които са разбираеми за операционната система и процесора. Преводачът не може да открие семантични грешки; те се търсят по време на отстраняване на грешки, тестване и човешка употреба на програмата.

Кодиране на информация

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

Факт е, че физическите устройства (регистри, клетки с памет) могат да бъдат в две състояния, които съответстват на 0 или 1. Използвайки редица подобни физически устройства, можете да съхранявате в паметта на компютърапочти всяко число в двоичната система. Колкото физически клетки се използват за записване на число, толкова и малко число може да се запише. Ако има 8 клетки, тогава числото може да се състои и от 8 цифри.

Кодирането в компютър на цели числа, дробни и отрицателни, както и символи (букви и т.н.) има свои собствени характеристики за всеки тип. Например, на целите числа се разпределя по-малко памет (по-малко клетки), отколкото на дроби, независимо от тяхната стойност.

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

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

Трябва да се разбере, че всички данни са по един или друг начин кодирана информация. Информацията може да бъде представена в различни форми: под формата на числа, текст, рисунка и др. Преводът от една форма в друга е кодиране.

Естествени числа (цели положителни числа)

Обикновено една клетка от паметта е равна на 1 байт, който от своя страна е равен на 8 бита. Тези. в една клетка от паметта можете да съхраните осемцифрено число в двоичната бройна система. Очевидно минималният такъв брой ще бъде 00000000, а максималният 11111111.

Ако представим числото 11111111 в десетичната бройна система, тогава ще получим числото 255. Тоест, един байт може да съхранява цели положителни числа от 0 до 255 включително (общо 256 стойности, което съответства на 2 8 ).

За съхраняване на числа, по-големи от 255, се използват повече байтове. Така че в два байта можете да съхраните число, състоящо се от 16 бита. Можете да разберете количествотовъзможни комбинации от нули и единици за 16-битово число: 2 16 = 65536. Т.е. два байта могат да съхраняват всяко число от 0 до 65535.

Например, нека изчислим броя на стойностите, които могат да бъдат съхранени, ако използваме 4-байтова клетка от паметта (такава клетка има 32 бита):

232 = 4294967296,

тези. над 4 милиарда.

Представяне на положителни и отрицателни числа в компютърната памет. Директен и допълнителен номер код

Директен код

Директният код е представяне на число в двоичната бройна система, в която първата (най-високата) цифра е присвоена на знака на числото. Ако числото е положително, тогава 0 се записва в левия бит; ако числото е отрицателно, тогава 1 се записва в левия бит.

Така в двоичната система, използвайки директен код, седемцифрено число може да бъде записано в осембитова клетка (байт). Например:

0 00011010 - положително число 1 00011010 - отрицателно число

Броят на стойностите, които могат да бъдат поставени в седембитова клетка с допълнителен знак, е 256. Това е същото като броя на стойностите, които могат да бъдат поставени в осембитова клетка, без да се посочва знак. Диапазонът от стойности обаче вече е различен, той включва стойности от -128 до 127 включително (когато се преобразуват в десетична нотация).

В същото време в компютрите директният код се използва почти изключително за представяне на положителни числа.

За отрицателни числа се използва така нареченият допълнителен код. Това се дължи на удобството за извършване на операции с числа от електронни устройства на компютър.

Допълнителен код

В допълнителния код, както и в директния, първата цифра е запазена за знака на числото. Използва се директен кодза представяне на положителни числа и екстра за представяне на отрицателни числа. Следователно, ако в първата цифра има 1, тогава имаме работа с допълнителен код и с отрицателно число.

Всички останали цифри на числото в допълнителния код първо се обръщат, т.е. са обърнати (0 към 1 и 1 към 0). Например, ако 1 0001100 е директен код на число, тогава при формирането на неговия допълнителен код първо трябва да замените нулите с единици, а единиците с нули, с изключение на първата цифра. Получаваме 1 1110011. Но това не е окончателната форма на допълнителния цифров код.

След това добавете единица към полученото число чрез инверсия:

1110011 + 1 = 1110100

В резултат на това се получава число, което обикновено се нарича допълнителен цифров код.

Причината, поради която допълващият код на числото се използва за представяне на отрицателни числа, е, че е по-лесно да се направи математика. Например, имаме две числа, представени в директен код. Едното число е положително, другото е отрицателно и тези числа трябва да се добавят. Въпреки това, не можете просто да ги сглобите. Първо, компютърът трябва да определи какви са тези числа. След като установи, че едно число е отрицателно, той трябва да замени операцията събиране с операция изваждане. След това машината трябва да определи кое число е по-голямо по модул, за да разбере знака на резултата и да реши какво от какво да извади. Резултатът е сложен алгоритъм. Много по-лесно е да добавяте числа, ако отрицателните се преобразуват в допълнение от две. Това може да се види в примерите по-долу.

Операцията за събиране на положително число и отрицателно число, представена в директен код

  1. Директен код номер 5: 0 000 0101 Директен код номер -7: 1 000 0111
  2. Сравняват се двете оригинални числа. INзнаковият бит на резултата е знакът на по-голямото оригинално число.
  3. Ако числата имат различни знаци, тогава вместо операцията събиране се използва операцията изваждане от по-голямата стойност на по-малката стойност. В този случай първият (знаков) бит не участва в операцията.
  1. След приключване на операцията се взема предвид първата цифра. Резултатът от операцията е 1 000 0010 или -210.

Операция за събиране на положително число и отрицателно число, представено в допълнение от две

  1. Директен код номер 5: 0 000 0101 Директен код номер -7: 1 000 0111
  2. Формиране на допълнителен номер код -7. Директен код: 1 000 0111 Инвертиране: 1 111 1000 Добавяне на единица: 1 111 1001
  3. операция добавяне.
  1. Проверка на резултата чрез конвертиране в директен код. Подкод: 1 111 1110 Изваждане на едно: 1 111 1101 Инвертиране: 1 000 0010 (или -210)

Кодиране на реални числа. Нормализирано представяне на числа

чт, 2009-12-31 14:14 — тех

В компютърните технологии реалните числа са числа, които имат дробна част.

Дробните числа могат да съдържат голям набор от цифри. Например: 0,0000345 или 10900000 (т.е. много големи или много малки числа). За удобство реалните числа са сведени до така нареченото нормализирано представяне на число. Такова представяне се състои в това, че числото се записва като произведение на основата на бройната система, повдигната в една или друга степен. Например предишните две числа в нормализирана форма ще изглеждат така: 0,345 * 10 -4 и 0,109 * 10 8 . Тук числата 0,345 и 0,109 самантиси на реални числа, 10 саоснова, а -4 и 8 саредове. В този случай запетая (точка),разделянето на дробната и целочислената част се поставя преди първата значима цифра (различна от 0).

Нормализираната форма на число е най-удобният начин за представяне на дробни числа в компютър.

Ясно е, че нормализираното представяне се използва не само за десетичната бройна система. Ето примери за нормализирани представяния на дробни числа в двоичната система:

101,11 = 0,10111 * 2 11 0,001 = 0,1 * 2 -10

Тук степени 11 и 10 са двоичната форма на десетичните числа 3 и 2.

Нормализираната форма на представяне на число е една от формите на многото варианти на експоненциалното записване на число.

Нека една дума се състои от 2 байта, две думи са 4 байта или 32 бита.

Нормализирано число с единична точност, представено във формат с плаваща запетая, се съхранява в паметта, както следва: знакът на числото е в бит 15 на първата дума (0 за положителни и 1 за отрицателни числа); редът се поставя в битове 7-14 от първата дума, а мантисата заема останалите 23 бита в две думи (битове от 0 до 6 от първата дума и всички битове от втората дума). Нормализираното число с двойна точност се записва в четири думи от паметта и се различава от представянето на числа с единична точност само по това, че продължението на мантисата се поставя в три последователни думи от паметта, следващи първата дума, и общо 55 бита са разпределени за мантисата в този случай.

Редът на число, представено във формат с плаваща запетая, варира от -128 до +127 и се съхранява увеличено с 128. Този начин на представяне на реда се нарича предубеден.

Трябва да се има предвид, че въпреки че мантисата има 23 бита за числа с единична точност и 55 бита за числа с двойна точност, в операциите участват 24 и 56 бита.съответно, защото най-значимата цифра от мантисата на нормализираното число не се съхранява, т.е. има така нареченото скрито изпускане. По време на хардуерни операции обаче този бит се възстановява автоматично и се взема предвид. Редът на числото също така взема предвид скритата най-значима цифра на мантисата.

Нормализираната мантиса в двоична система винаги се представя от десетично число m, лежащо в диапазона 0, 5 = m 1.

Пример за представяне на число във формат с плаваща запетая:

0.110 = 0.000(1100)2 = 0.(1100)2*2-3 -310 = (-3 + gelleruri128)10 = 011111012.

Ако мантисата е представена от безкрайна периодична дроб, тогава последната взета под внимание цифра на мантисата се закръгля.

-49,510 = -110001,1002 = -0,11000112*26 610 = (6 + 128)10 = 100001102.

Когато извършвате аритметични операции върху числа, представени във формат с плаваща запетая, те трябва да се извършват отделно за експоненти и мантиси. При алгебричното събиране на числа първо трябва да изравните редовете на членовете. При умножаване поръчките трябва да се добавят, а мантисата трябва да се умножава. При деление редът на делителя се изважда от реда на делителя и се извършва обичайната операция за деление върху мантисите. След извършване на операциите, ако е необходимо, резултатът се нормализира, което води до промяна в поръчките, тъй като всяко изместване наляво с една цифра съответства на намаляване на реда с единица, а изместване надясно съответства на увеличение с единица. Въвеждането на термина „плаваща запетая” се обяснява именно с факта, че двоичният ред, който определя действителната позиция на точката в изображението на числото, се коригира след извършване на всяка аритметична операция, т.е. точка в изображението на числото „плува“ (позицията й се променя) при промяна на дадената стойност. И в изображението на числата, представени във форматас фиксирана точка, тя е твърдо фиксирана на определено място.

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