• บทความนี้อธิบายว่า ค่า 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
  • สรุปทั้ง ช่วงค่าที่แทนได้และข้อมูลช่วงห่างกับค่าข้างเคียง ไว้ด้วย

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น