Информатика и ИКТ - Кодиране на информацията
формален език
Езикът е система от обозначения и правила за предаване на съобщения. Разграничете естествените езици, на които хората общуват, и изкуствените (или формални). Официалните езици са езици за програмиране.
Езикът е специфициран чрез азбука, синтаксис и семантика.Езикът за програмиране е формален език, който предоставя описание на конкретни проблеми, формулирани от човек и решени от компютър.
Азбука е набор от символи (букви ), подредени по определен смисъл в даден език или система. Само знаци, принадлежащи към дадена азбука, могат да се използват за съставяне на думи.
Думата може да се дефинира като подреден набор от знаци в дадена азбука, която има конкретно значение.
Транслатор (от английски 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
В резултат на това се получава число, което обикновено се нарича допълнителен цифров код.
Причината, поради която допълващият код на числото се използва за представяне на отрицателни числа, е, че е по-лесно да се направи математика. Например, имаме две числа, представени в директен код. Едното число е положително, другото е отрицателно и тези числа трябва да се добавят. Въпреки това, не можете просто да ги сглобите. Първо, компютърът трябва да определи какви са тези числа. След като установи, че едно число е отрицателно, той трябва да замени операцията събиране с операция изваждане. След това машината трябва да определи кое число е по-голямо по модул, за да разбере знака на резултата и да реши какво от какво да извади. Резултатът е сложен алгоритъм. Много по-лесно е да добавяте числа, ако отрицателните се преобразуват в допълнение от две. Това може да се види в примерите по-долу.
Операцията за събиране на положително число и отрицателно число, представена в директен код
- Директен код номер 5: 0 000 0101 Директен код номер -7: 1 000 0111
- Сравняват се двете оригинални числа. INзнаковият бит на резултата е знакът на по-голямото оригинално число.
- Ако числата имат различни знаци, тогава вместо операцията събиране се използва операцията изваждане от по-голямата стойност на по-малката стойност. В този случай първият (знаков) бит не участва в операцията.
- След приключване на операцията се взема предвид първата цифра. Резултатът от операцията е 1 000 0010 или -210.
Операция за събиране на положително число и отрицателно число, представено в допълнение от две
- Директен код номер 5: 0 000 0101 Директен код номер -7: 1 000 0111
- Формиране на допълнителен номер код -7. Директен код: 1 000 0111 Инвертиране: 1 111 1000 Добавяне на единица: 1 111 1001
- операция добавяне.
- Проверка на резултата чрез конвертиране в директен код. Подкод: 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.
Когато извършвате аритметични операции върху числа, представени във формат с плаваща запетая, те трябва да се извършват отделно за експоненти и мантиси. При алгебричното събиране на числа първо трябва да изравните редовете на членовете. При умножаване поръчките трябва да се добавят, а мантисата трябва да се умножава. При деление редът на делителя се изважда от реда на делителя и се извършва обичайната операция за деление върху мантисите. След извършване на операциите, ако е необходимо, резултатът се нормализира, което води до промяна в поръчките, тъй като всяко изместване наляво с една цифра съответства на намаляване на реда с единица, а изместване надясно съответства на увеличение с единица. Въвеждането на термина „плаваща запетая” се обяснява именно с факта, че двоичният ред, който определя действителната позиция на точката в изображението на числото, се коригира след извършване на всяка аритметична операция, т.е. точка в изображението на числото „плува“ (позицията й се променя) при промяна на дадената стойност. И в изображението на числата, представени във форматас фиксирана точка, тя е твърдо фиксирана на определено място.
Аритметичните операции с числа с плаваща запетая са много по-сложни от операциите с числа с фиксирана запетая. Но от друга страна, плаващата запетая ви позволява автоматично да извършвате операции по мащабиране в самата машина и елиминира натрупването на абсолютни грешки в изчисленията (въпреки че не елиминира натрупването на относителни грешки).