|
1) if (shortValue < 0)
{
shortValue = -shortValue;
char sign = 0x80;
} else sign = 0;
2) for (pow=(127-16);!(shortValue&0x8000);shortValue <<=1,pow--)//нормализация
3) long pseudofloat = (shortValue & 0x7fff)|(pow<<23)|(sign<<24)
pseudofloat соответствует теперь float, по внутреннему представлению, т.е. к нему можно обратиться по указателю как к float
float *ptr = (float*)&pseudofloat;
float something = *ptr; - это уже настоящий float
E-mail: info@telesys.ru