ฉันไม่เข้าใจจุดคงที่และตัวเลขทศนิยมเนื่องจากอ่านคำจำกัดความเกี่ยวกับพวกเขาได้ยากใน Google แต่ไม่มีที่ฉันได้อ่านให้คำอธิบายที่เรียบง่ายเพียงพอว่าแท้จริงแล้วคืออะไร ฉันสามารถหาคำจำกัดความธรรมดาพร้อมตัวอย่างได้หรือไม่?
ฉันไม่เข้าใจจุดคงที่และตัวเลขทศนิยมเนื่องจากอ่านคำจำกัดความเกี่ยวกับพวกเขาได้ยากใน Google แต่ไม่มีที่ฉันได้อ่านให้คำอธิบายที่เรียบง่ายเพียงพอว่าแท้จริงแล้วคืออะไร ฉันสามารถหาคำจำกัดความธรรมดาพร้อมตัวอย่างได้หรือไม่?
คำตอบ:
หมายเลขจุดคงที่มีจำนวนบิต (หรือหลัก) ที่สงวนไว้สำหรับส่วนจำนวนเต็ม (ส่วนที่อยู่ทางซ้ายของจุดทศนิยม) และจำนวนบิตเฉพาะที่สงวนไว้สำหรับส่วนเศษส่วน (ส่วนทางด้านขวาของทศนิยม จุด). ไม่ว่าจำนวนของคุณจะมีขนาดใหญ่หรือเล็ก แต่ก็จะใช้จำนวนบิตเท่ากันสำหรับแต่ละส่วน ตัวอย่างเช่นหากรูปแบบจุดคงที่ของคุณเป็นทศนิยมIIIII.FFFFF
จำนวนที่มากที่สุดที่คุณสามารถแทนได้จะเป็น99999.99999
และจำนวนที่ไม่ใช่ศูนย์ที่เล็กที่สุดจะเป็น00000.00001
และจำนวนที่ไม่ใช่ศูนย์ที่เล็กที่สุดจะเป็นทุกบิตของรหัสที่ประมวลผลตัวเลขดังกล่าวจะต้องมีความรู้ในตัวว่าจุดทศนิยมอยู่ที่ใด
เลขทศนิยมไม่สงวนจำนวนบิตเฉพาะสำหรับส่วนจำนวนเต็มหรือส่วนเศษส่วน แต่จะสงวนจำนวนบิตไว้สำหรับจำนวน (เรียกว่าแมนทิสซาหรือนัยสำคัญ ) และบิตจำนวนหนึ่งที่จะบอกว่าตำแหน่งทศนิยมอยู่ที่ใดภายในจำนวนนั้น (เรียกว่าเลขชี้กำลัง ) ดังนั้นจำนวนจุดลอยที่เกิดขึ้น 10 หลักมี 2 ตัวเลขที่สงวนไว้สำหรับตัวแทนอาจเป็นตัวแทนของความคุ้มค่าที่ใหญ่ที่สุดของและไม่ใช่ศูนย์ค่าที่น้อยที่สุดของ9.9999999e+50
0.0000001e-49
-9.9999999e+50
ดีที่คุณจะลืมไปว่าตัวเลขทศนิยมจะมีการเซ็นเกือบตลอดเวลาเพื่อให้ค่าต่ำสุดจริงๆจะเป็น
00000.00001
? ฉันคาดหวังว่าจะได้เห็น00000.00000
แทน นอกจากนี้คุณมีข้อมูลอ้างอิงที่ให้รายละเอียดเพิ่มเติมเกี่ยวกับตัวเลขจุดคงที่หรือไม่?
ตัวเลขจุดคงที่หมายความว่ามีจำนวนหลักคงที่หลังจุดทศนิยม ตัวเลขทศนิยมอนุญาตให้มีจำนวนหลักที่แตกต่างกันหลังจากจุดทศนิยม
ตัวอย่างเช่นหากคุณมีวิธีการจัดเก็บตัวเลขที่ต้องใช้ตัวเลขสี่หลักหลังจุดทศนิยมมันจะเป็นจุดคงที่ หากไม่มีข้อ จำกัด นั้นก็คือจุดลอยตัว
บ่อยครั้งเมื่อมีการใช้จุดคงที่โปรแกรมเมอร์จะใช้จำนวนเต็มจริงๆแล้วตั้งสมมติฐานว่าตัวเลขบางตัวอยู่เกินจุดทศนิยม ตัวอย่างเช่นฉันอาจต้องการรักษาความแม่นยำสองหลักดังนั้นค่า 100 หมายถึงจริง 1.00, 101 หมายถึง 1.01, 12345 หมายถึง 123.45 เป็นต้น
ตัวเลขจุดลอยตัวเป็นจุดประสงค์ทั่วไปมากกว่าเนื่องจากสามารถแสดงตัวเลขที่เล็กมากหรือจำนวนมากได้ในลักษณะเดียวกัน แต่มีโทษเล็กน้อยที่จะต้องมีพื้นที่จัดเก็บเพิ่มเติมสำหรับตำแหน่งทศนิยม
จากความเข้าใจของฉันเลขคณิตจุดคงที่ทำได้โดยใช้จำนวนเต็ม โดยที่ส่วนทศนิยมถูกเก็บไว้ในจำนวนบิตคงที่หรือจำนวนนั้นคูณด้วยจำนวนหลักของทศนิยมที่ต้องการ
ตัวอย่างเช่นหากจำนวน12.34
ความต้องการที่จะเก็บไว้และเราจำเป็นต้องใช้เพียงตัวเลขสองหลักของความแม่นยำหลังจุดทศนิยมจำนวนคูณที่จะได้รับ100
1234
เมื่อคำนวณเลขนี้เราจะใช้ชุดกฎนี้ การเพิ่ม5620
หรือ56.20
ไปยังหมายเลขนี้จะให้ผลผลิตในข้อมูลหรือ6854
68.54
หากเราต้องการคำนวณส่วนทศนิยมของจำนวนจุดคงที่เราใช้ตัวถูกดำเนินการโมดูโล (%)
12.34 (รหัสเทียม):
v1 = 1234 / 100 // get the whole number
v2 = 1234 % 100 // get the decimal number (100ths of a whole).
print v1 + "." + v2 // "12.34"
ตัวเลขทศนิยมเป็นเรื่องราวที่แตกต่างอย่างสิ้นเชิงในการเขียนโปรแกรม มาตรฐานปัจจุบันสำหรับตัวเลขทศนิยมใช้บางอย่างเช่น 23 บิตสำหรับข้อมูลของจำนวน 8 บิตสำหรับเลขชี้กำลังและ 1 แต่สำหรับเครื่องหมาย ดูลิงค์ Wikipedia สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้
คำว่า 'จุดคงที่' หมายถึงลักษณะที่สอดคล้องกันซึ่งแสดงตัวเลขโดยมีจำนวนหลักคงที่หลังและบางครั้งก่อนหน้าจุดทศนิยม ด้วยการแทนค่าทศนิยมตำแหน่งของจุดทศนิยมสามารถ 'ลอย' โดยสัมพันธ์กับเลขนัยสำคัญของตัวเลขได้ ตัวอย่างเช่นการแทนค่าจุดคงที่ด้วยรูปแบบการจัดวางจุดทศนิยมที่สม่ำเสมอสามารถแทนตัวเลข 123.45, 1234.56, 12345.67 เป็นต้นในขณะที่การแทนค่าทศนิยมยังสามารถแทนค่า 1.234567, 123456.7, 0.00001234567, 1234567000000000 เป็นต้น
ใช้หมายเลข 123.456789
จุดลอยตัวช่วยให้คุณแสดงตัวเลขส่วนใหญ่ได้อย่างแม่นยำ คงที่แม่นยำน้อยกว่า แต่ง่ายกว่าสำหรับคอมพิวเตอร์ ..