Форми за представяне на числа в компютър

Материал от PIE.Wiki

Машинното изображение на число е неговото представяне в битовата мрежа на компютъра. В компютрите се използват две форми на представяне на числата:

  • естествена форма или форма с фиксирана точка;
  • нормална форма или форма с плаваща запетая (точка);

(естествена форма) 452,34 \u003d 452340 * 10 -3 \u003d 0,0045234 * 10 5 \u003d 0,45234 * 10 3 (нормална форма)

Всяко десетично число, преди да влезе в паметта на компютъра, се преобразува по схемата:

След това се извършва друга важна процедура:

  • мантисата с нейния знак се заменя с кода на мантисата с нейния знак;
  • експонентата с неговия знак се заменя с кода на експонентата с неговия знак.

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

Съществуват следните двоични числа:

  • Директен код;
  • Обратен код;
  • Допълнителен код.

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

Съдържание

естествена форма

Във формата с фиксирана точка строго определен брой цифри се разпределят в битовата мрежа за целите и дробните части на числото. Левият (най-висок) бит съхранява знака (0 - "+", 1 - "-") и не се използва за запис на число.

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

където А епроизволно число, [A] - компютърно изображение на числото в битовата мрежа, K A - мащабен коефициент.

Естествената форма на числото в неявна, условна форма се реализира по формулата:

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

С фиксирана запетая числата се показват като поредица от цифри със запетая, която е постоянна за всички числа, разделяйки цялата част от дробната част (например 32,54; 0,0036; -108,2). Формата на представяне на числа с фиксирана запетая опростява хардуерната реализация на компютъра, намалява времето за изпълнение на машинните операции, но при решаване на проблеми на машина е необходимо постоянно да се гарантира, че всички първоначални данни, междинни и крайни резултати са в приемливия диапазон на представяне. Ако това не се спазва, битовата мрежа може да препълни и резултатът от изчислението ще бъде неправилен. От тези недостатъци компютрите, които използват формата за представяне на числа с плаваща запетая или нормална форма, са до голяма степен свободни. В съвременните компютри формата с фиксирана запетая се използва само за цели числа.

нормална форма

Числата с плаваща запетая (PLC) се показват като:

където M е мантисата на числото (правилна дроб в рамките на 0,1 ≤ M 2 , 0,36×10 -2 , –0,1082×10 3 .

Нормализираната експоненциална нотацияе нотация във форматаa= m*P q, където q е цяло число (положително, отрицателно или нула), а m е P-число, чиято цяла част се състои от една цифра. В този случай m е мантисата на числото, q е редът на числото.

Тоест нормалната форма се реализира по формулата:

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

При представяне на числа с плаваща запетая, част от цифрите на клетката се разпределят за запис на реда на числото, останалите цифри се използват за запис на мантисата. Една цифра във всяка група е отделена за изображението на знака на ордена и знака на мантисата. За да не се съхранява знакът на реда, се използва така наречениятизместен ред, който се изчислява по формулата 2 (a-1) + IP, където a е броят битове, заделени за реда, IP е истинският ред.

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

Алгоритъм за представяне с плаваща запетая:

  1. преобразуване на число от p-арна бройна система в двоична;
  2. представят двоично число в нормализирана експоненциална форма;
  3. изчисляване на изместения ред на числото;
  4. поставете знака, експонентата и мантисата в съответните битове на мрежата.

Когато информацията е представена под формата на десетични многоцифрени числа, всяка десетична цифра се заменя с двоично-десетичен код. За да се ускори обменът на информация, да се спести памет и да се направят операциите с десетични числа по-удобни, са предвидени специални формати за тяхното представяне: зонирани (неопаковани) и опаковани. Форматът на зоната се използва при операции за въвеждане. За това компютрите имат специалниинструкции за опаковане и разопаковане на десетични числа.

Директен код

Представянето на число в обичайната форма "знак" - "стойност", при което най-големият бит от клетката е присвоен на знака, а останалата част на числото в двоичната система, се наричадиректен кодна двоичното число. Например директните двоични числа 1001 и -1001 за 8-битова клетка са съответно 00001001 и 10001001.

Положителните числа в компютъра винаги се представят с помощта на директен код. Директният код на номера напълно съвпада с въвеждането на самия номер в клетката на машината. По принцип положителните числа в преките, обратните и допълнителните кодове се представят по един и същ начин - чрез двоични кодове с цифра 0 в знаковия бит.

Например,

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

Директният код на двоично число(и това е или мантисата, или редът)се формира съгласно следния алгоритъм:

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

Например,

Обратен код

Обратният код на положително двоично число е същият като директния код.При отрицателно число всички цифри на числото се заменят с противоположни (1 до 0, 0 до 1), а в знаковия бит се въвежда единица.

Например,

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

Допълнителният код на положително число е равен на директния код на това число. Допълнителният код на отрицателно число m е2 k- m, където k е броят на цифрите в клетката.Също така, допълнителният код на отрицателно число се образува чрез добавяне на 1 към обратния код.

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

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

  1. представят модула на отрицателно число като директен код в k двоични цифри;
  2. инвертирайте стойността на всички битове: заменете всички нули с единици и единици с нули (по този начин # се получава k-битов обратен код на оригиналното число);
  3. добавете един към получения код за връщане.

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

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

Например,