Ваша задача состоит в том, чтобы написать программу, на любом языке, который добавляет два числа с плавающей точкой вместе без использования какой - либо дробной или с плавающей точкой математики. Целочисленная математика разрешена.
Формат
Формат чисел - это строки, содержащие 1 и 0, которые представляют двоичное значение 32-разрядного числа с плавающей запятой IEEE 754 . Например, число 2.54 будет представлено строкой "01000000001000101000111101011100".
Цель
Ваша программа должна ввести два числа в вышеупомянутом формате, сложить их вместе и вывести результат в том же формате. Самый короткий ответ на любом языке выигрывает!
правила
Абсолютно не допускается использование математических функций с плавающей запятой, десятичных или любых нецелых математических функций.
Вы можете предположить, что ввод чистый (т.е. содержит только 1 и 0).
Можно предположить, что входные данные являются числами, а не Inf, -Inf, или NaN, или субнормальными. Однако, если результат больше максимального значения или меньше минимального значения, вы должны вернуть Inf и -Inf соответственно. Субнормальный (денормальный) результат может быть сброшен до 0.
Вам не нужно правильно обрабатывать округления. Не волнуйтесь, если ваши результаты будут немного хуже.
тесты
Чтобы протестировать свои программы, вы можете конвертировать двоичные числа в десятичные и с плавающей запятой, используя этот инструмент .
1000 + 0,5 = 1000,5
01000100011110100000000000000000 + 00111111000000000000000000000000 = 01000100011110100010000000000000
float.MaxValue + float.MaxValue = Бесконечность
01111111011111111111111111111111 + 01111111011111111111111111111111 = 01111111100000000000000000000000
321.123 + -123.321 = 197.802
01000011101000001000111110111110 + 11000010111101101010010001011010= 01000011010001011100110101010000
Удачи!