Göreviniz herhangi bir dilde, herhangi bir kesirli veya kayan nokta matematiği OLMADAN birlikte iki kayan nokta sayısı ekleyen bir program yazmaktır . Tamsayı matematiğine izin verilir.
Biçim
Sayıların formatı, bir IEEE 754 32 bit kayan değerin ikili değerini temsil eden 1'ler ve 0'lar içeren dizelerdir . Örneğin, 2.54 sayısı "01000000001000101000111101011100" dizesiyle temsil edilir.
Hedef
Programın yukarıda belirtilen biçimde iki sayı girmesi, bir araya getirmesi ve sonucu aynı biçimde çıkarmanız gerekir. Herhangi bir dilde en kısa cevap kazanır!
kurallar
Kesinlikle hiçbir kayan nokta, ondalık veya tamsayı olmayan matematik fonksiyonlarına izin verilmez.
Girişin temiz olduğunu varsayabilirsiniz (yani yalnızca 1'ler ve 0'lar içerir).
Girişlerin sayı olduğunu, Inf, -Inf veya NaN veya altnormal olmadığını varsayabilirsiniz. Ancak, sonuç maksimum değerden büyük veya minimum değerden küçükse, sırasıyla Inf ve -Inf değerlerini döndürmelisiniz. Subnormal (denormal) bir sonuç 0'a akıtılabilir.
Yuvarlamayı düzgün işlemeniz gerekmez. Sonuçlarınız birkaç bit ise endişelenmeyin.
Testler
Programlarınızı test etmek için, bu aracı kullanarak ondalık ve kayan nokta ikili sayıları arasında dönüştürme yapabilirsiniz .
1000 + 0.5 = 1000.5
01000100011110100000000000000000 + 00111111000000000000000000000000 = 01000100011110100010000000000000
float.MaxValue + float.MaxValue = Sonsuzluk
01111111011111111111111111111111 + 01111111011111111111111111111111 = 01111111100000000000000000000000
321.123 + -123.321 = 197.802
01000011101000001000111110111110 + 11000010111101101010010001011010= 01000011010001011100110101010000
İyi şanslar!