เครื่องมือแปลงชนิดข้อมูล | 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) | BADC | CDAB |
|---|---|---|---|---|
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
- การกำหนดค่าพารามิเตอร์อุปกรณ์อุตสาหกรรม
- การวิเคราะห์โปรโตคอลการสื่อสาร
- การพัฒนาระบบเก็บข้อมูล
- การคำนวณค่ารีจิสเตอร์ของอุปกรณ์
- การแปลงเลขทศนิยมและจำนวนเต็ม
- การปรับรูปแบบข้อมูลของอุปกรณ์หลายชนิด