Једнострука тачност
Једнострука тачност (енгл. single precision, single) је у рачунарству начин приказивања рационалних бројева код кога се користе користе четири бајта (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, Научна књига, Београд