UTILS.
ทำงานในเบราว์เซอร์ 100%
💾

ตัวแปลงจุดลอยตัว IEEE-754

แปลงเลขทศนิยมไป/มาจากรูปแบบบิต IEEE-754 แบบ single (32 บิต) หรือ double (64 บิต) และแยกฟิลด์ sign, exponent และ mantissa

ป้อนตัวเลขหรือรูปแบบบิตด้านบน

เกี่ยวกับเครื่องมือนี้

ตัวแปลงจุดลอยตัว IEEE-754 แสดงให้เห็นว่าตัวเลขถูกจัดเก็บในหน่วยความจำเป็นจุดลอยตัวความละเอียดเดี่ยว 32 บิตหรือความละเอียดคู่ 64 บิตอย่างไร และสามารถแปลงรูปแบบบิตดิบกลับเป็นค่าทศนิยมได้ มันใช้ typed array ของ JavaScript (Float32Array / DataView) ดังนั้นรูปแบบบิตจึงเป็นการนำเสนอฮาร์ดแวร์จริง ไม่ใช่ค่าประมาณ

ในโหมดไปข้างหน้า มันรายงานรูปแบบเป็นเลขฐานสิบหกและเลขฐานสองที่แยกออกเป็นสามฟิลด์: บิต sign, exponent (8 บิตพร้อม bias 127 สำหรับ float32, 11 บิตพร้อม bias 1023 สำหรับ float64) และ mantissa (23 หรือ 52 บิต) มันยังถอดรหัส exponent ที่ไม่มี bias และจำแนกค่าเป็น normal, subnormal, zero, infinity หรือ NaN ที่สำคัญคือมันพิมพ์ค่าที่จัดเก็บจริงที่อ่านกลับจากบิต ซึ่งสำหรับ float32 มักต่างจากที่คุณพิมพ์ ทำให้ข้อผิดพลาดจากการปัดจุดลอยตัวมองเห็นได้ เช่น 0.1 ไม่ได้ถูกเก็บอย่างแม่นยำในความละเอียดใด

ในโหมดย้อนกลับ คุณวางรูปแบบ hex (มีหรือไม่มี 0x) หรือสตริงเลขฐานสองแบบเต็มความกว้าง แล้วมันจะตีความบิตเหล่านั้นใหม่เป็นจุดลอยตัวและแสดงค่าทศนิยมที่ได้พร้อมการแยกฟิลด์แบบเดียวกัน ทุกอย่างทำงานภายในเบราว์เซอร์ของคุณ นี่เป็นเครื่องมือที่ใช้ประจำสำหรับทำความเข้าใจการปัด เปรียบเทียบความละเอียดเดี่ยวกับคู่ และตรวจสอบการเข้ารหัสพิเศษสำหรับ ±0, ±∞ และ NaN

คำถามที่พบบ่อย

ทำไมค่าที่จัดเก็บจึงต่างจากที่ฉันพิมพ์?
เศษส่วนทศนิยมส่วนใหญ่ไม่สามารถแสดงได้อย่างแม่นยำในจุดลอยตัวฐานสอง ดังนั้นค่าที่แสดงได้ใกล้ที่สุดจึงถูกจัดเก็บ ตัวแปลงอ่านบิตกลับและแสดงค่าที่จัดเก็บจริงนั้น ซึ่งเผยข้อผิดพลาดจากการปัด โดยเฉพาะในความละเอียดเดี่ยว 32 บิต
ฟิลด์จัดวางอย่างไร?
Float32 ใช้ 1 บิต sign, 8 บิต exponent (bias 127) และ 23 บิต mantissa; float64 ใช้ 1 บิต sign, 11 บิต exponent (bias 1023) และ 52 บิต mantissa exponent ที่ไม่มี bias เท่ากับ exponent ดิบลบด้วย bias
zero, infinity และ NaN เข้ารหัสอย่างไร?
exponent ที่เป็นศูนย์ทั้งหมดพร้อม mantissa ศูนย์คือ ±0 หรือ subnormal ถ้า mantissa ไม่เป็นศูนย์ exponent ที่เป็นหนึ่งทั้งหมดหมายถึง ±infinity เมื่อ mantissa เป็นศูนย์ และ NaN เมื่อไม่เป็นศูนย์ เครื่องมือติดป้ายกำกับแต่ละหมวดหมู่
ฉันไปจากรูปแบบบิตกลับเป็นตัวเลขได้ไหม?
ได้ สลับเป็นโหมดย้อนกลับและวางรูปแบบ hex 8 หลัก (float32) หรือ 16 หลัก (float64) หรือสตริงเลขฐานสองแบบเต็ม 32 หรือ 64 บิต แล้วเครื่องมือจะตีความบิตเหล่านั้นใหม่เป็นค่าจุดลอยตัว

เครื่องมือเพิ่มเติม