Авиационно инженерство Административно право Административно право Беларус Алгебра Архитектура Безопасност на живота Въведение в професията „психолог” Въведение в икономиката на културата Висша математика Геология Геоморфология Хидрология и хидрометрия Хидросистеми и хидравлични машини Културология Медицина Психология икономика дескриптивна геометрия Основи на икономически т Oria професионална безопасност Пожарна тактика процеси и структури на мисълта, Професионална психология Психология Психология на управлението на съвременната фундаментални и приложни изследвания в апаратура социалната психология социални и философски проблеми Социология Статистика теоретичните основи на компютъра автоматично управление теория на вероятностите транспорт Закон Turoperator Наказателно право Наказателно-процесуалния управление модерна производствена Физика Физични феномени Философски хладилни инсталации и екология Икономика История на икономиката Основи на икономиката Икономика на предприятията Икономическа история Икономическа теория Икономически анализ Развитие на икономиката на ЕС Спешни ситуации ВКонтакте Однокласници Моят свят Facebook LiveJournal Instagram
border=0

Компютърно кодиране и обработка на реални числа

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

Ситуацията се променя коренно, когато се представят и обработват реални числа. На математическата ос номер реалните числа образуват непрекъснат набор (континуум), т.е. две числа могат да бъдат произволно близки един до друг, а на всеки сегмент има безкрайно много стойности на числата. В машинното представяне броят на възможните стойности на числата е ограничен; за двоична числова система тя се дефинира като 2 k , където k е броят на двоичните цифри в представянето на мантисата. Т.е. реалните числа в компютъра се заменят с техните кодове, които образуват краен дискретен набор; всеки код е представителен за целия интервал от стойностите на континуума.

От това обстоятелство следват няколко последствия:

Следствие 1 е, че стриктните връзки между числата в континуума се превръщат в слаби за техните компютърни представители, т.е.

Следствие 2. Тъй като кодът на реално число в даден компютър е приблизителен представител на много числа от интервала, резултатите от изчисленията също ще бъдат очевидно неточни, съдържащи неизбежната грешка. Това е основната характеристика на обработката на реални числа в компютъра - винаги се прави с грешка (между другото, оценката на тази грешка е независима и не е лесна задача).

Следствие 3. Наред с концепцията за най-голямото реално число (поради ограничеността на разтоварващата решетка), се появява концепцията за най-малък номер или машинна нула. Например, в типа PASCAL от типа Real, всеки десетичен номер по модул по-малък от 2.3 10 -39 се оказва, че е нула на машината, т.е. Той се счита равен на 0 при запазване и при операции с него. Така математическата концепция за "0" като точната стойност на числото в компютърното представяне се заменя с понятието "нулева машина" като стойност на число, по-малко от определена стойност.

Както вече споменахме, основната форма за представяне на кодове на реални числа в компютъра е двоична нормализирана. В този случай всички компоненти на нормализираната форма (знака за число, мантиса, знак за ред и ред) трябва да бъдат записани и съхранени в паметта на компютъра, което изисква няколко клетки от паметта. Например номера от тип Real ("реален") от езика PASCAL са поставени в 6 байта, т.е. 48 двоични цифри. Директното разпределение на компонентите на нормализирания брой цифри се определя от конструктивните характеристики на компютъра и софтуера. По-долу е даден пример за поставяне на номер в две клетки на паметта (32 бита):

Тъй като стойността на мантисата лежи в диапазона от 0.1 2M 2 <1, нулата в разряда на цели числа и десетичния разделител не са включени в представянето, т.е. Мантисата съдържа само частични числа. Освен това е възможно да не се запази първата значима цифра на мантисата, тъй като тя винаги е 1 (но, разбира се, тя може да бъде възстановена по време на изчисленията) - това прави възможно запазването на допълнителен „скрит“ бит, т.е. до известна степен подобрява точността на обработката. В хода на извършване на аритметични операции, както бе споменато по-рано, междинните и крайните стойности се нормализират, състоящи се в преместване на мантисата надясно или наляво при промяна на реда, което е еквивалентно на изместване на десетичния разделител - затова тази форма на представяне на числа се нарича „ плаваща точка“ ". Както и в случая с числата, за кодовете на реалните числа съществува концепцията за преливане, но тя не възниква след попълване на решетката за освобождаване на мантисата - това само води до нормализиране на броя, но при запълване на всички цифри на реда. За горния пример за поставяне на число в 32 бита, очевидно

Точността на обработката ще бъде 7 знака след десетичния знак. Когато | X 2 |. \ T . \ T X 2 |. \ T възниква максимално преливане, т.е. операцията ще бъде неправилна.





Вижте също:

Дефиниране на обект

Пример 4.13

Пример 4.15

Обща идея за моделиране

Пример 5.4

Връщане към съдържанието: Теоретични основи на компютърните науки

2019 @ ailback.ru