เครื่องมือแปลงชนิดข้อมูล | IEEE754 Floating Point/Hex/Decimal Converter/รองรับหลายลำดับไบต์ (Big/Little/Big-ByteSwap/Little-ByteSwap)/การแปลงเรียลไทม์

เครื่องมือแปลงชนิดข้อมูลระดับมืออาชีพ รองรับการแปลงระหว่าง IEEE754 floating point กับเลขฐานสิบหก/ฐานสิบ ครอบคลุมชนิดข้อมูลจำนวนเต็มและทศนิยมทั้งหมด (UINT16/INT16/UINT32/INT32/FLOAT32/UINT64/INT64/FLOAT64) รองรับหลายลำดับไบต์ (Big Endian/Little Endian/Big Endian-Byte Swap/Little Endian-Byte Swap) พร้อมแสดงผลการแปลงแบบเรียลไทม์

รูปแบบอินพุต:

ผลการแปลง

ชนิดข้อมูลABCD (Big Endian)DCBA (Little Endian)BADCCDAB
UINT16
จำนวนเต็มไม่คิดเครื่องหมาย 16 บิต
-
-
INT16
จำนวนเต็มคิดเครื่องหมาย 16 บิต
-
-
UINT32
จำนวนเต็มไม่คิดเครื่องหมาย 32 บิต
-
-
-
-
INT32
จำนวนเต็มคิดเครื่องหมาย 32 บิต
-
-
-
-
FLOAT32
เลขทศนิยม 32 บิต
-
-
-
-
UINT64
จำนวนเต็มไม่คิดเครื่องหมาย 64 บิต
-
-
-
-
INT64
จำนวนเต็มคิดเครื่องหมาย 64 บิต
-
-
-
-
FLOAT64
เลขทศนิยม 64 บิต
-
-
-
-

คู่มือการใช้งาน

ภาพรวมฟังก์ชัน

เครื่องมือแปลงชนิดข้อมูลถูกออกแบบมาเพื่อการแปลงระหว่างรูปแบบข้อมูลที่แตกต่างกัน รองรับการแปลงระหว่างเลขฐานสิบหกและเลขฐานสิบ ครอบคลุมชนิดข้อมูลจำนวนเต็มและทศนิยมตั้งแต่ 16 บิตถึง 64 บิต จำนวนเต็มใช้การแสดงผลแบบ Two's Complement และเลขทศนิยมใช้การเข้ารหัสแบบ IEEE-754 (Single Precision 32-bit/Double Precision 64-bit) ซึ่งช่วยให้เห็นผลกระทบของลำดับไบต์ต่อผลลัพธ์ได้อย่างชัดเจน

ฟังก์ชันหลัก

  • การแปลงรูปแบบ รองรับการแปลงระหว่างเลขฐานสิบหกและเลขฐานสิบ
  • ชนิดข้อมูลหลากหลาย รองรับ 8 ชนิดข้อมูลที่ใช้บ่อย (UINT16/INT16/UINT32/INT32/FLOAT32/UINT64/INT64/FLOAT64)
  • รองรับลำดับไบต์ รองรับ 4 ลำดับไบต์ (ABCD/DCBA/BADC/CDAB) เพื่อให้เข้ากับอุปกรณ์และลำดับคำของรีจิสเตอร์ที่แตกต่างกัน
  • การแปลงแบบเรียลไทม์ แสดงผลการแปลงทุกชนิดทันทีหลังจากป้อนข้อมูล

วิธีการใช้งาน

  • 1. เลือกรูปแบบอินพุต เลขฐานสิบหรือเลขฐานสิบหก
  • 2. ป้อนค่าในช่องอินพุต
  • 3. ดูผลการแปลงในตารางด้านล่าง
  • 4. ผลการแปลงที่เกินช่วงจะแสดงเป็น '-'

คำอธิบายรูปแบบอินพุต

  • อินพุตเลขฐานสิบ ป้อนตัวเลขโดยตรง เช่น 123, -456, 3.14
  • อินพุตเลขฐานสิบหก ป้อนอักขระฐานสิบหก เช่น 7B, FF00, A1B2C3D4
  • การจัดรูปแบบเลขฐานสิบหกอัตโนมัติ จะเติมเต็มเป็นจำนวนคู่และเพิ่มช่องว่างคั่นโดยอัตโนมัติขณะป้อน

คำอธิบายชนิดข้อมูล

ชนิดข้อมูลจำนวนเต็มUINT16/INT16 มีขนาด 2 ไบต์, UINT32/INT32 มีขนาด 4 ไบต์, UINT64/INT64 มีขนาด 8 ไบต์ จำนวนเต็มคิดเครื่องหมายใช้การแสดงผลแบบ Two's Complement โดยบิตสูงสุดเป็นบิตเครื่องหมาย ค่าลบได้มาจากการกลับค่าบิตของค่าสัมบูรณ์แล้วบวกด้วย 1 (Invert + 1) ขณะแสดงผลจะขยายเครื่องหมายตามความกว้างบิตเป้าหมาย

ชนิดข้อมูลทศนิยมFLOAT32 เป็น Single Precision ขนาด 4 ไบต์ (1 บิตเครื่องหมาย + 8 บิตเลขชี้กำลัง + 23 บิตแมนทิสซา, เลขชี้กำลังมีค่า offset 127), FLOAT64 เป็น Double Precision ขนาด 8 ไบต์ (1 บิตเครื่องหมาย + 11 บิตเลขชี้กำลัง + 52 บิตแมนทิสซา, เลขชี้กำลังมีค่า offset 1023) ทั้งสองแบบเป็นไปตามมาตรฐาน IEEE-754 รองรับค่าพิเศษเช่น ±0, ±∞ และ NaN (Not a Number) ค่า Subnormal จะแสดงด้วยเลขชี้กำลังที่น้อยมาก

ข้อจำกัดช่วงค่า ค่าที่เกินช่วงของชนิดข้อมูลจะแสดงเป็น '-'

คำอธิบายลำดับไบต์

  • ABCD Big Endian, ไบต์สูงมาก่อน (เช่น PLC/อุปกรณ์ควบคุมอุตสาหกรรมบางชนิด)
  • DCBA Little Endian, ไบต์ต่ำมาก่อน (เช่น สถาปัตยกรรม x86 ส่วนใหญ่)
  • BADC Byte Swap (สลับ AB↔BA, CD↔DC โดยใช้ 16 บิตเป็นหน่วย) มักพบในการสลับไบต์คู่ในข้อมูล 32 บิต
  • CDAB Byte Swap (สลับไบต์คู่หน้าหลังในกลุ่ม 32 บิต) เข้ากันได้กับลำดับคำของรีจิสเตอร์ Modbus บางส่วน

หมายเหตุ ลำดับไบต์ (Byte Endianness) และลำดับคำของรีจิสเตอร์ (Word Order) เป็นคนละแนวคิดกัน ข้อมูล 16 บิตมีการจัดเรียงที่มีความหมายเพียง 2 แบบคือ ABCD และ DCBA สำหรับข้อมูล 64 บิต แนะนำให้อ้างอิงแผนภาพ 8 ไบต์ ABCDEFGH เพื่อหลีกเลี่ยงความสับสน

ความรู้เกี่ยวกับการแปลงข้อมูล

การแปลงชนิดข้อมูลคืออะไร?

การแปลงชนิดข้อมูลคือกระบวนการแปลงค่าเดียวกันระหว่างรูปแบบการแสดงผลที่แตกต่างกัน รวมถึงการแปลงระหว่างฐานตัวเลข (ฐานสิบ/ฐานสิบหก) และชนิดข้อมูล (จำนวนเต็ม/ทศนิยม) ซึ่งมักพบในการวิเคราะห์ค่ารีจิสเตอร์และการสร้างเฟรมในสถานการณ์ Modbus/PLC/Embedded

รูปแบบทศนิยม IEEE-754 (Single/Double Precision)

Single Precision (32 บิต) = 1 บิตเครื่องหมาย + 8 บิตเลขชี้กำลัง (offset 127) + 23 บิตแมนทิสซา Double Precision (64 บิต) = 1 บิตเครื่องหมาย + 11 บิตเลขชี้กำลัง (offset 1023) + 52 บิตแมนทิสซา รองรับ ±0, ±∞, NaN เมื่อเลขชี้กำลังเป็นศูนย์ทั้งหมดและแมนทิสซาไม่เป็นศูนย์ จะเป็นค่า Subnormal ซึ่งใช้แสดงค่าที่น้อยมากใกล้ศูนย์

Two's Complement และจำนวนเต็มคิดเครื่องหมาย

ค่า Two's Complement ได้มาจากการกลับค่าบิตของค่าสัมบูรณ์แล้วบวกด้วย 1 โดยบิตสูงสุดเป็นบิตเครื่องหมาย เมื่อวิเคราะห์ HEX เป็นประเภท INT จำเป็นต้องขยายเครื่องหมายตามความกว้างบิต เมื่อบิตสูงสุดเป็น 1 แสดงว่าเป็นค่าลบ ต้องแปลงกลับตามกฎของ Two's Complement

ลำดับไบต์ (Endianness) และลำดับคำของรีจิสเตอร์ (Word Order)

ลำดับไบต์ควบคุมการจัดเรียงไบต์ในหน่วยความจำ (ABCD/DCBA) ส่วนลำดับคำของรีจิสเตอร์ควบคุมลำดับของคำสูงและต่ำในรีจิสเตอร์ 16 บิต (เช่น BADC/CDAB) ทั้งสองอย่างมักส่งผลต่อการแสดงผลและการวิเคราะห์ข้อมูล 32/64 บิตพร้อมกัน ควรตั้งค่าให้สอดคล้องกับเอกสารของอุปกรณ์

จำนวนเต็ม 64 บิตและจำนวนเต็มปลอดภัยของ JavaScript

Number ในเบราว์เซอร์เป็น Double Precision IEEE-754 ซึ่งมีช่วงจำนวนเต็มปลอดภัยที่ ±(2^53-1) เครื่องมือนี้ใช้ BigInt ในการแปลงและแสดงผลในสถานการณ์ 64 บิต เมื่อค่าเกินช่วงเป้าหมายหรือมีความเสี่ยงด้านความแม่นยำ จะแสดงเครื่องหมาย '-' เป็นการเตือน

การทำให้ HEX อินพุตเป็นมาตรฐาน

HEX อินพุตจะลบอักขระที่ไม่ใช่เลขฐานสิบหกออกโดยอัตโนมัติ, แปลงเป็นตัวพิมพ์ใหญ่ทั้งหมด, และเติม 0 นำหน้าเมื่อจำเป็นเพื่อให้เป็นจำนวนคู่ และแสดงผลโดยแบ่งกลุ่มละสองตัวอักษรพร้อมเว้นวรรคเพื่อให้อ่านง่ายขึ้น

กฎสำหรับทศนิยมและชนิดข้อมูลจำนวนเต็ม

เมื่ออินพุตเลขฐานสิบมีจุดทศนิยมและเป้าหมายเป็นชนิดจำนวนเต็ม จะแสดง '-' จะทำการแปลงเป็นทศนิยมก็ต่อเมื่อเป้าหมายเป็น FLOAT32/FLOAT64 เท่านั้น

ข้อผิดพลาดที่พบบ่อย การแสดงผล Big/Little Endian และลำดับบิต, NaN/Infinity

Big/Little Endian มีผลต่อลำดับไบต์เท่านั้น ไม่ใช่ลำดับบิตภายในไบต์ NaN มีรูปแบบการเข้ารหัสหลายแบบ แต่แสดงผลเป็น NaN เหมือนกัน ±0 ใน IEEE-754 มีความแตกต่างกัน แต่ในการเปรียบเทียบค่ามักจะเท่ากัน

สถานการณ์การใช้งาน

  • การแปลงรูปแบบข้อมูลในการสื่อสาร Modbus
  • การดีบักชนิดข้อมูล PLC
  • การกำหนดค่าพารามิเตอร์อุปกรณ์อุตสาหกรรม
  • การวิเคราะห์โปรโตคอลการสื่อสาร
  • การพัฒนาระบบเก็บข้อมูล
  • การคำนวณค่ารีจิสเตอร์ของอุปกรณ์
  • การแปลงเลขทศนิยมและจำนวนเต็ม
  • การปรับรูปแบบข้อมูลของอุปกรณ์หลายชนิด
เครื่องมือแปลงชนิดข้อมูล | IEEE754 Floating Point/Hex/Decimal Converter/รองรับหลายลำดับไบต์ (Big/Little/Big-ByteSwap/Little-ByteSwap)/การแปลงเรียลไทม์