Једнострука тачност () је у рачунарству начин приказивања рационалних бројева код кога се користе користе четири бајта (32 бита) за бележење бројевне вредности. У свакодневном говору се за овај начин представљања бројева користи израз "реални бројеви у покретном зарезу" мада је овиме могуће представити само један подскуп рационалних бројева. Опсег овако представљених бројева иде приближно од 0.29•10-38 до 1.70•1038 уз тачност представљања која износи око 7 цифара.

Данас се махом имплементира према стандарду IEEE 754 иако постоје и друга структурна решења овог формата.

IEEE 754 Према стандарду IEEE 754, реални бројеви са једноструком тачношћу се деле на три дела: знак, експонент и фракцију (мантису). Тачнија подела битова по овим елементима је:

центар

Знак броја одређује бит са највећом вредношћу индекса − 31 (највећом тежином), при чему вредност 1 означава негативан а 0 позитиван број. Експонент је цео број одређен са следећих 8 битова на местима 30 - 23. Овај број нема знака већ се за обележавање и позитивних и негативних бројева користи метод "вишак 127". Помоћу њега се одређује тзв. карактеристика која учествује у рачунању крајње вредности броја. Она се добија следећом формулом: карактеристика = експонент - 127. Фракција односно мантиса је нормализована вредност основног броја између 0,5 и 1 и која се у зависности од експонента интерпретира на различите начине. Формирају је битови на позицијама 22 - 0.

Тачна интерпретација оваквог броја гласи:

(-1)знак · 2карактеристика · (1, фракција )

Пример: из бинарног у децимални запис Рецимо да је у сагласности са овим стандардом задат бинарни број једноструке, чију децималну репрезентацију треба наћи:

11000001001100000000000000000000

Број ће прво бити подељен на знак, експонент и фракцију:

1 10000010 011000...

А потом ће вредности параметара бити одређене:

S = 1 E = (10000010)2 = (130)10 M = (011000...)2 C = E - 127 = 3

Вредност = (-1)S · (1.M)2 · 2C = (-1)1 · (1.011000...)2 · 23 = -1 · (1 + 2-2 + 2-3)10 · 23 = -1 · (23 + 21 + 20) = -1 · (8 + 2 + 1) = -11

Пример: из децималног у бинарни запис Рецимо да је дат децимални број кога треба записати у једнострукој тачности према овом стандарду.

Вредност = 5.23

Овај број ће прво бити преведен у свој бинарни запис, тако да садржи укупно 23+1 бита.

(5.23)10 = (101.00(11101011100001010001))2 = (101.001110101110000101000)2

Потом ће бити трансформисан у експоненцијални запис, тако да испред зареза буде само један бит.

(101.001110101110000101000)2 = (1.01001110101110000101000)2 · 22

Сада му се могу издвојити чиниоци. Фракција -{M}- су сви битови иза зареза, карактеристика -{C}- степен двојке на крају израза а бит за знак је 0, пошто је број позитиван. Експонент -{E}- се рачуна по формули: експонент = карактеристика + 127.

S = 0 M = 01001110101110000101000 C = 2 E = C + 127 = (129)10 = (10000001)2

Сада можемо да запишемо број у бинарном формату (-{S + E + М}-):

0 10000001 01001110101110000101000 = 01000000101001110101110000101000

Литература

Јозо Дујмовић, Програмски језици и методе програмирања, 1990, Научна књига, Београд

Категорија:Рачунарска аритметика Категорија:Типови података Категорија:Бинарна аритметика