Компактное представление чисел с погрешностью

Допустим, имеется величина tex:x с погрешностью tex:\Delta. Установим необходимую точность представления (максимальный шаг квантования) tex:E как величину, пропорциональную погрешности, или tex:E = \epsilon\Delta.

Рассмотрим двоичное представление подобных чисел на примере величины 1,3±0,2 при tex:\epsilon = 2^{-3} = 0{,}125.

Разряды, вес которых меньше E, очевидно, не нужны в кодировании. При этом разряды количество значащих разрядов погрешности при выборе точности как степени двойки всегда будет постоянным.

Номер разряда 2 1 0 −1 −2 −3 −4 −5 −6 −7 −8
Величина 0 0 1, 0 1 0 0 1 1 0 0
Погрешность 0 0 0, 0 0 1 1 0 0 1 0
E 0 0 0, 0 0 0 0 0 1 1 0
значащие разряды незначащие разряды

Кодирование

Величина Погр. Порядок
0 0 1 0 1 0 0 1 1 0 1 0…

Декодирование

exp_bit = a & -a; /* извлечение младшего бита */
deviation = (a & (exp_bit << dev_bits)-1 | exp_bit << dev_bits) << dev_bits;
value = a & -(exp_bit << dev_bits);
cifra/kompaktnoe_predstavlenie_chisel_s_pogreshnostju.txt · Последние изменения: 2011/11/18 01:55 — vovanium
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 3.0 Unported