Николай Коровин (28.01.2007 12:36, просмотров: 2120)
Ихбтшный баян =======================================================
72. min, 25.10.2004 10:28
Данный странный алгоритм убирает мусор из числа. Известно заранее, что числа "правильные" в некотором смысле.
Например - шаг шкалы оцифровки графика.
// Жила была переменная float
float Step=0.1; // или 1./3. или 2./3. или что нибудь похожее
// Её копируют в double, в результате в младших разрядах мусор 0.100000001490116 , 0.333333343267441 ...
double StepD=Step;
//Но мусор нам не нужен и его убираем
unsigned char *p=(unsigned char *)&StepD;
if(p[4]==p[5]) p[0]=p[1]=p[2]=p[3]=p[4];
// В результате получаем 0.1, 0.333333333333333 ...
Алгоритм используется в реальном проекте. Выглядит странно, но очень эфективен.
======================================================