- บทความนี้อธิบายว่า ค่า floating-point (float) ถูก จัดเก็บ และแสดงผล ในหน่วยความจำ อย่างไร
- เน้นวิธีแปลงค่าจาก รูปแบบเลขฐานสิบหกและฐานสิบ ไปเป็นค่าตัวเลขจริง
- อธิบายการกำหนดส่วน Sign, Exponent, Significand และหน้าที่ของแต่ละส่วน
- มีตัวอย่างวิธีตีความว่า float ค่าหนึ่งๆ แทนค่า ฐานสองและฐานสิบที่แน่นอน อะไร
- กล่าวถึงการคำนวณ ความต่าง (Delta) ระหว่างค่าที่สามารถแทนได้ด้วย
การวิเคราะห์โครงสร้างการจัดเก็บค่าจุดลอยตัว
- มี รูปแบบ floating-point หลายแบบ เช่น "halfb float float double"
- ค่าของแต่ละตัวสามารถตรวจสอบเป็นค่าที่เก็บอยู่ในหน่วยความจำได้ เช่น Raw Hexadecimal Integer Value (ค่าเลขจำนวนเต็มฐานสิบหก) และ Raw Decimal Integer Value (ค่าเลขจำนวนเต็มฐานสิบ)
- ข้อมูลเลขฐานสิบหกเชื่อมโยงกับการเขียนค่าจุดลอยตัวจริงผ่าน Hexadecimal Form (
%a)
- ตำแหน่งของค่าแต่ละตัวแสดงด้วย Significand–Exponent Range (ตำแหน่งบนช่วงกว้างของกัยสำคัญ–เลขชี้กำลัง)
วิธีตีความค่าฐานสองและฐานสิบ
- จำนวนจุดลอยตัวสามารถเขียนในรูป Base-2 (นิพจน์ประเมินค่าแบบฐานสอง) ได้ดังนี้:
- (−12)02×102(100010012 − 011111112)×1.011111110010100000000002
→ เป็นการประเมินค่าตัวเลขผ่านนิพจน์ฐานสอง
- ใน Base-10 (นิพจน์ประเมินค่าแบบฐานสิบ) จะอยู่ในรูปแบบนี้:
- 1×210×1.4967041015625
→ แสดงเป็นผลคูณของ 2 ยกกำลัง 10 กับส่วนทศนิยม
- ยังแสดง ค่าเลขฐานสิบที่แม่นยำจริง หลังการแปลงด้วย:
- แสดงในรูปอย่าง 1.532625×103
การคำนวณระยะห่างจากค่าข้างเคียง (Delta)
- Delta (ช่วงห่าง) ระหว่างค่าที่สามารถแทนได้มีความสำคัญอย่างมาก
- มีการให้ค่า ระยะห่างถึงค่าที่แทนได้ถัดไปหรือก่อนหน้า (Delta to Next/Previous Representable Value) แยกกัน
- ตัวอย่าง: ±1.220703125×10-4
- ช่วงห่างนี้เกี่ยวข้องกับ จำนวนหลักนัยสำคัญ/ความแม่นยำ ของค่าจุดลอยตัว
สรุป
- อธิบาย การแทนค่าในหน่วยความจำ ของ floating-point และหลักการแปลงเป็นฐานสองและฐานสิบ
- อธิบายโครงสร้าง sign, exponent, significand
- สรุปทั้ง ช่วงค่าที่แทนได้และข้อมูลช่วงห่างกับค่าข้างเคียง ไว้ด้วย
ยังไม่มีความคิดเห็น