Как преобразовать неподписанное int в число с плавающей точкой?
Мне нужно построить функцию, которая возвращает битовый эквивалент (float) x без использования каких-либо плавающих типов данных, операций или констант. Я думаю, что у меня есть, но когда я запускаю тестовый файл, он возвращает, что тамэто бесконечный цикл. Любая помощь отладки будет принята.
m разрешено использовать любые целочисленные / беззнаковые операции, включая ||, &&, если, пока. Кроме того, я могу использовать только 30 операций
unsigned float_i2f(int x) {
printf("\n%i", x);
if (!x) {return x;}
int mask1 = (x >> 31);
int mask2 = (1 < 31);
int sign = x & mask2;
int complement = ~x + 1;
//int abs = (~mask1 & x) + (mask1 & complement);
int abs = x;
int i = 0, temp = 0;
while (!(temp & mask2)){
temp = (abs