งานของคุณคือการเขียนโปรแกรมในภาษาใด ๆ ที่เพิ่มตัวเลขทศนิยมสองตัวพร้อมกันโดยไม่ต้องใช้เลขเศษส่วนหรือทศนิยมใด ๆ อนุญาตให้ใช้เลขจำนวนเต็ม
รูปแบบ
รูปแบบสำหรับตัวเลขที่เป็นสตริงที่มี 1 และ 0 ซึ่งเป็นตัวแทนของค่าไบนารีของIEEE 754 ลอย ตัวอย่างเช่นหมายเลข 2.54 จะแทนด้วยสตริง "01000000001000101000111101011100"
เป้าหมาย
คุณโปรแกรมควรป้อนตัวเลขสองตัวในรูปแบบที่กล่าวถึงข้างต้นรวมเข้าด้วยกันและส่งออกผลลัพธ์ในรูปแบบเดียวกัน คำตอบที่สั้นที่สุดในทุกภาษาชนะ!
กฎระเบียบ
ไม่อนุญาตให้ใช้ฟังก์ชันทศนิยมจุดทศนิยมหรือฟังก์ชันคณิตศาสตร์ที่ไม่ใช่จำนวนเต็มชนิดใด ๆ
คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นสะอาด (เช่นมีเพียง 1 และ 0)
คุณสามารถสันนิษฐานได้ว่าอินพุตเป็นตัวเลขไม่ใช่ Inf, -Inf หรือ NaN หรือ subnormal อย่างไรก็ตามหากผลลัพธ์มากกว่าค่าสูงสุดหรือเล็กกว่าค่าขั้นต่ำคุณควรส่งคืน Inf และ -Inf ตามลำดับ ผลลัพธ์ย่อย (denormal) อาจถูกลบทิ้งเป็น 0
คุณไม่จำเป็นต้องจัดการการปัดเศษอย่างเหมาะสม ไม่ต้องกังวลหากผลลัพธ์ของคุณมีน้อย
การทดสอบ
เพื่อทดสอบโปรแกรมของคุณคุณสามารถแปลงระหว่างเลขฐานสองทศนิยมและทศนิยมโดยใช้เครื่องมือนี้
1000 + 0.5 = 1,000.5
01000100011110100000000000000000 + 00111111000000000000000000000000 = 01000100011110100010000000000000
float.MaxValue + float.MaxValue = อินฟินิตี้
01111111011111111111111111111111 + 01111111011111111111111111111111 = 01111111100000000000000000000000
321.123 + -123.321 = 197.802
01000011101000001000111110111110 + 11000010111101101010010001011010= 01000011010001011100110101010000
โชคดี!