ผู้ใช้:Zyaxious/drafts/จำนวนจุดลอยตัวความแม่นยำหนึ่งเท่า

จากวิกิพีเดีย สารานุกรมเสรี

จำนวนจุดลอยตัวความแม่นยำหนึ่งเท่า เป็นจำนวนตัวเลขคอมพิวเตอร์ชนิดหนึ่ง โดยปกติจะใช้พื้นที่จำนวน 32 บิตในหน่วยความจำคอมพิวเตอร์ ซึ่งใช้แทนจำนวนของค่าตัวเลขที่ไม่คงตัว โดยใช้จุดเลขฐานลอยตัวในการระบุขนาดของระยะช่วงตัวเลข

ตัวแปรจำนวนจุดลอยตัวสามารถแทนจำนวนที่มีระยะช่วงตัวเลขที่กว้างกว่าตัวแปรจำนวนจุดคงตัว โดยที่มีขนาดบิตเท่ากัน แต่จะทำให้สูญเสียความแม่นยำของช่วงระยะไปด้วย ตัวแปรจำนวนเต็มมีเครื่องหมายขนาด 32 บิต มีค่าสูงสุดที่ 231 − 1 = 2,147,483,647 ในขณะที่ตัวแปรจำนวนจุดลอยตัวฐานสองแบบ IEEE 754 ขนาด 32 บิต มีค่าสูงสุดที่ (2 − 2−23) × 2127 ≈ 3.4028235 × 1038 จำนวนเต็มใดที่มีทศนิยมไม่เกินเจ็ดหลัก และจำนวนเต็มใดที่สามารถแทนด้วย 2n โดยที่ n มีค่าเท่ากับ −149 ≤ n ≤ 127 นั้น จะสามารถแปลงให้เป็นค่าตัวเลขจำนวนจุดลอยตัวความแม่นยำหนึ่งเท่าแบบ IEEE 754 โดยไม่สูญเสียความแม่นยำของช่วงระยะ

ในมาตรฐาน IEEE 754-2008 จำนวนฐานสองขนาด 32 บิต มีชื่ออย่างเป็นทางการว่า binary32 และมีชื่อว่า single ใน IEEE 754-1985 โดย IEEE 754 ได้กำหนดประเภทจำนวนจุดลอยตัวเพิ่มเติม เช่น จำนวนฐานสองความแม่นยำสองเท่าขนาด 64 บิต และจำนวนฐานสิบในภายหลัง

ภาษาโปรแกรมแรกที่มีชนิดข้อมูลจำนวนจุดลอยตัวความแม่นยำหนึ่งและสองเท่า คือ ภาษาฟอร์แทรน ก่อนที่มาตรฐานของ IEEE 754-1985 จะได้รับการรองรับอย่างแพร่หลายนั้น การแทนค่าและลักษณะของชนิดข้อมูลจำนวนจุดลอยตัวนั้น ขึ้นอยู่กับเครื่องคอมพิวเตอร์และการตัดสินใจของนักออกแบบภาษาโปรแกรม

จำนวนจุดลอยตัวความแม่นยำหนึ่งเท่า ถูกกำหนดให้มีชื่อว่า REAL ในภาษาฟอร์แทรน SINGLE-FLOAT ในภาษาคอมมอนลิสป์ float ในภาษาซี ภาษาซี++ ภาษาซีชาร์ป และภาษาจาวา Float ในภาษาแฮสเคิลและภาษาสวิฟต์ และ Single ในภาษาอ็อบเจกต์ปาสกาล ภาษาวิชวลเบสิก และภาษาแมตแล็บ แต่สำหรับ float ในภาษาไพธอน ภาษารูบี ภาษาพีเอชพี และภาษาโอแคเมิล และ single ในอ็อกเตฟรุ่นก่อน 3.2 จะใช้แทนค่าจำนวนจุดลอยตัวความแม่นยำสองเท่าแทน ส่วนในภาษาโพสต์สคริปต์ และในระบบฝังตัวส่วนใหญ่ รองรับเพียงความแม่นยำหนึ่งเท่าเท่านั้น

มาตรฐาน IEEE 754: binary32[แก้]

มาตรฐาน IEEE 754 กำนหดให้ binary32 ประกอบด้วย:

การกำหนดรูปแบบของจำนวนนี้ ทำให้มีความแม่นยำระยะช่วงทศนิยมที่ 6 ถึง 9 หลัก หากจำนวนฐานสิบที่มีความยาวของทศนิยมไม่เกิน 6 หลัก ถูกแปลงให้เป็นจำนวนจุดลอยตัวความแม่นยำหนึ่งเท่าแบบ IEEE 754 แล้วแปลงกลับมาเป็นจำนวนฐานสิบที่มีความยาวของทศนิยมเท่ากันนั้น ผลลัพธ์ที่ได้จะต้องมีค่าเท่ากับตัวเลขฐานสิบเดิม ส่วนจำนวนจุดลอยตัวความแม่นยำหนึ่งเท่าแบบ IEEE 754 ที่ถูกแปลงให้เป็นจำนวนฐานสิบที่มีความยาวของทศนิยมอย่างน้อย 9 หลัก แล้วแปลงกลับมาเป็นจำนวนจุดลอยตัวความแม่นยำหนึ่งเท่านั้น ผลลัพธ์ที่ได้จะต้องมีค่าเท่ากับจำนวนเดิม[1]

บิตเครื่องหมาย จะเป็นตัวกำหนดเครื่องหมายให้กับเลขนัยสำคัญและค่าที่แทนจำนวน

  1. William Kahan (1 October 1997). "Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic" (PDF). p. 4.