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

Преобразуване на нормализирани числа

Реалното число X може да бъде представено в две форми - естествени и нормализирани. В естествена форма X има цяло число и дробна част, между която е поставен сепаратор (запетая или период), например 123.4567. Въпреки това, такъв запис е неудобен за твърде големи или, обратно, твърде малки числа. В допълнение, използването на такава форма (наричана още "представяне на число с фиксирана точка") в компютъра би довело до намаляване на точността на изчисленията поради необходимостта от подравняване на битовете на обработваните числа и свързаното закръгляване или може да доведе до ситуация, наречена преливане водещата цифра на номера не се побира в разпределената битова решетка. Поради горепосочените причини реалните числа в компютъра са представени в нормализирана форма (друго име е „представяне с плаваща запетая“), основното предимство на което е автоматичното мащабиране на броя на всеки етап от обработката, което, от една страна, осигурява възможно най-висока точност на изчисленията, и другата елиминира необходимостта от предприемане на мерки за предотвратяване на препълване (с изключение на доста екзотични ситуации с изход на число извън разпределената битова мрежа). Всъщност, това е универсална форма на записване на всички числа, с изключение на тези, които са дефинирани като “тип: цели числа” (например Integer, Word или Byte в PASCAL).

Първо ще се запознаем с необходимите понятия по отношение на 10-тата система.

Числото X 10 се нарича нормализирано, ако е представено като X 10 = ± M 10 10 ± k 10 .

В тази статия М 10 наречен мантиса нормализиран брой; стойностите на мантисата лежат в интервала 0.1 ≤ M 10 1. k 10 се нарича ред на нормализираното число - това е положително цяло число. Примери: -1234 10 = -0.1234 '10 4 ; 0.03456 10 = 0.3456 -1 10 -1 .

Понятието за нормализиран брой трябва да се разграничава от понятието за число в нормална форма; Тази форма често се използва при писане на цифри в математиката, физиката и техническите дисциплини и се различава от нормализираното представяне с това, че мантисата лежи в интервала 1 ≤ M 10 <10, например k B = 1,38 10 -23 .

Когато се случи нормализация, "компонентите" на числата се разпадат, със знака на числото, мантисата, знака на реда и маркирания ред - както ще бъде показано по-долу, това създава определени удобства за съхраняване и обработка на номера в компютъра.

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

Стойностите на мантисата са в интервала p -1M p < 1 (т.е. първата значима цифра на мантисата винаги е ненулева), а показателят е представен в системата p (k p ). Например за p = 2:

Мантисата се намира в интервала 0.1 2 ≤ M 2 < 1, което съответства на десетичния интервал 0,5 10 ≤ M 10 <1.

Подобно на проблема за преобразуване на цели числа и частични числа, можете да поставите проблема за преобразуване на представянето на число в нормализирана форма в числовата система p в нормализираното представяне в системата q. Практическото значение на такава трансформация е, че както беше казано, в компютъра се съхраняват и обработват всички реални числа нормализирано двоично представяне и следователно, когато ги въведете, X 10 се превежда X 2 , и при изтегляне - обратен превод X 2 X 10 . Въпреки това, преди да обсъдим такъв превод, е необходимо да разгледаме как реалното число се трансформира от естествена форма в нормализирана форма.

По време на нормализирането ситуациите се различават: X p > 1 и X p <p -1 . В първия случай, за нормализиране, е необходимо да преместите разделителя на битовете наляво по броя, докато цялата част от числото изчезне, но първата цифра след разделителя ще бъде не-нула; всяко движение на разделителя с 1 цифра вляво е равно на разделянето на числото с p , така че номерът да не се променя, индексът трябва да се увеличи с една за всяка смяна. Ако обозначим тази операция като N (ще го наречем "нормализация вляво"), тогава N [(123.45) 10 ] = 0.12345 10 3 10 3 ; N [(23.4 5 10 5 ) 10 ] = 0.234 10 7 10 7 ; N [(1212.2) 3 ] = 0.12122 3 11 3 11 . По същия начин можете да въведете операцията „нормализация в дясно” ( N ), осигуряваща нормализиране на числа, по-малки от p -1 ; очевидно такива числа трябва да се умножат по р с едновременно намаляване на индекса с 1, докато първата цифра след сепаратора стане ненулева. Например, N [(0.000101 -1 2 -101 ) 2 ] = 0.101 2 -1000 ; N [(0,000987) 10 ] = 0,987 10 -3 10 -3 . Общият алгоритъм за нормализация може да бъде представен като блок " нормализация надясно" ( N ), който осигурява нормализиране на числа, по-малки от p -1 ; очевидно такива числа трябва да се умножат по р с едновременно намаляване на индекса с 1, докато първата цифра след сепаратора стане ненулева. Например, N [(0.000101 -1 2 -101 ) 2 ] = 0.101 2 -1000 ; N [(0,000987) 10 ] = 0,987 10 -3 10 -3 . Общият алгоритъм за нормализация може да бъде представен като блок-схема на фиг. 4.4.

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

Нека се върнем към проблема за преобразуването на нормализирано число от една система с номера в друга. Да предположим, че има число X p = ± M p ∙ p ± kp, за което трябва да намерим съответния X q = ± M q ∙ p ± kq . Изглежда съвсем очевидно, че трансформацията няма да засегне знаците на мантисата и експонентата. Следователно, за да се извърши трансформацията, е необходимо да се установи съответствие между ( Mp , kp) и ( Mq , k q ). Оказва се съвсем просто, въз основа на факта, че X p = X q , откъдето следва:

От (4.13) следва, че за осъществяване на трансформацията, Мр може да се умножи по р kp , т.е. отидете на естествената форма на числото в системата p , преведете го в системата q и след това нормализирайте. Въпреки това, при такъв вариант точността на броя се губи и е възможно препълване на междинните етапи на преобразуването. За да се избегне това, е необходимо да се редува умножението (или делението) с p и нормализирането по отношение на основата q. Освен това, тъй като всички операции се изпълняват съгласно правилата на аритметиката в системата p , не (M q , k q ) ще бъдат получени в окончателната версия и техните представяния в системата p - обозначаваме ги (M q ) p и (k q ) p , които след това ще трябва да бъдат прехвърлени в системата q. Ситуациите k p 0 и k p < 0 също се различават - в първия случай е необходимо да се умножат началните и междинните стойности на мантисата от p и за нормализиране да се разделят на q, а във второто - обратно. Всеки път, когато се умножава или дели с p, експонентата k p ще промени стойността си с 1; действията трябва да продължат, докато се изпълни условието k p = 0. Алгоритъмът на действията за ситуацията k p ≥ 0 е представен на фиг.





Вижте също:

Пример 4.4.

Пример 10.1

Примери за класификация и структура на данните

Тестови въпроси и задачи

Глава 9. Разбиране на държавната машина

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

2019 @ ailback.ru