Једнострука тачност

Из Википедије, слободне енциклопедије

Једнострука тачност (енгл. single precision, single) је у рачунарству формат броја који за бележење бројевне вредности користи четри бајта (32 бита). Данас се махом имплементира према стандарду IEEE 754 иако постоје и друга структурна решења овог формата.

[уреди] IEEE 754

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

Float example(sr).svg
  • Знак броја одређује бит са највећом вредношћу индекса − 31 (највећом тежином), при чему вредност 1 означава негативан а 0 позитиван број.
  • Експонент је одређен са следећих 8 битова на местима 30 - 23. Овај број нема знака, а помоћу њега се одређује тзв. карактеристика која учествује у рачунању крајње вредности броја. Она се добија следећом формулом: карактеристика = експонент - 127.
  • Фракција је вредност основног броја која се у зависности од експонента интерпретира на различите начине. Формирају је битови на позицијама 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 + M + E):

0 10000001 01001110101110000101000
= 01000000101001110101110000101000
Лични алати
Именски простори

Варијанте
Радње
навигација
техничке
штампање/извоз
алати
Други језици