ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
4 мая
1322064 Топик полностью
IBAH (20.06.2023 12:10, просмотров: 136) ответил ЫЫyкпy на Чтобы не терялись младшие разряды нужно сохранять и учитывать в вычислениях дробные части, получится арифметика с фиксированной точкой.
Ну это понятно, вопрос в том как это сделать если "n" зависит от знака ошибки, 

у меня получается так, вроде работает, при условии m>k1, m>k2

#define m (8)

#define k1 (2)

#define k2 (4)

long Detektor(long x)

{

static long y0;

x=x<<m;

if((x-y0)>0)

{

у0=у0+(х>>k1)-(у0>>k1);

}

else

{

у0=у0+(х>>k2)-(у0>>k2);

}

return y0>>m;

}