Tugas Anda adalah untuk menulis sebuah program, dalam bahasa apapun, yang menambahkan dua angka floating point bersama-sama TANPA menggunakan setiap matematika titik pecahan atau mengambang. Matematika integer diizinkan.
Format
Format untuk angka adalah string yang berisi 1 dan 0 yang mewakili nilai biner dari pelampung 32-bit IEEE 754 . Misalnya angka 2.54 akan diwakili oleh string "01000000001000101000111101011100".
Tujuan
Program Anda harus memasukkan dua angka dalam format yang disebutkan di atas, menambahkannya bersama-sama, dan menghasilkan hasilnya dalam format yang sama. Jawaban terpendek dalam bahasa apa pun menang!
Aturan
Sama sekali tidak diperbolehkan fungsi floating point, desimal, atau jenis matematika non-integer lainnya.
Anda dapat mengasumsikan bahwa inputnya bersih (yaitu hanya berisi 1 dan 0).
Anda dapat mengasumsikan bahwa input adalah angka, dan bukan Inf, -Inf, atau NaN atau subnormal. Namun, jika hasilnya lebih besar dari nilai maks atau lebih kecil dari nilai min, Anda harus mengembalikan Inf dan -Inf masing-masing. Hasil subnormal (tidak normal) dapat memerah ke 0.
Anda tidak harus menangani pembulatan dengan benar. Jangan khawatir jika hasilnya sedikit keluar.
Tes
Untuk menguji program Anda, Anda dapat mengonversi antara angka biner titik desimal dan mengambang menggunakan alat ini .
1000 + 0,5 = 1000,5
01000100011110100000000000000000 + 00111111000000000000000000000000 = 01000100011110100010000000000000
float.MaxValue + float.MaxValue = Infinity
01111111011111111111111111111111 + 01111111011111111111111111111111 = 01111111100000000000000000000000
321.123 + -123.321 = 197.802
01000011101000001000111110111110 + 11000010111101101010010001011010= 01000011010001011100110101010000
Semoga berhasil!