Итак, я пытаюсь вернуть значение экспоненты для f. Если x - бесконечность или NaN, мне нужно вернуть Tmax. f должен интерпретироваться как представление уровня битов с плавающей точкой с одной точностью и да, я имею в виду передать переменную без знака. Я знаю, что мне нужно удалить соответствующее значение для смещения. Я просто не могу понять, как это сделать. Я могу использовать любые операции, которые хочу, но только 8 из них (= не учитываются).Получение показателя плавающего числа в C
int float_exp(unsigned uf) {
int mask = 2139095040;
int hold;
hold = uf & mask;
if(mask == hold){
return Tmax;
} else {
return ;// something here???
}
}
Я не могу понять, как получить экспонента. Любая помощь будет оценена!
Если бы не домашнее задание, вы бы искали 'frexp()' в своем руководстве. –
См. Также [Разделение чисел с плавающей запятой на половину в двоичном формате] (http://stackoverflow.com/questions/22159484/dividing-floating-point-numbers-by-half-in-binary). Не прямой дубликат, но тесно связанный. –
@JonathanLeffler ваши комментарии не помогают. – Shaw