Công cụ chuyển đổi kiểu dữ liệu | Chuyển đổi Số thực IEEE754/Thập lục phân/Thập phân / Hỗ trợ Nhiều thứ tự byte (Big Endian/Little Endian/Big Endian-Byte Swap/Little Endian-Byte Swap) / Chuyển đổi Thời gian thực

Công cụ chuyển đổi kiểu dữ liệu chuyên nghiệp, hỗ trợ chuyển đổi qua lại giữa số thực IEEE754 và hệ thập lục phân/thập phân, bao gồm tất cả các kiểu dữ liệu số nguyên và số thực (UINT16/INT16/UINT32/INT32/FLOAT32/UINT64/INT64/FLOAT64), hỗ trợ nhiều thứ tự byte (Big Endian (byte cao trước)/Little Endian (byte thấp trước)/Big Endian-Byte Swap/Little Endian-Byte Swap), hiển thị kết quả chuyển đổi theo thời gian thực.

Định dạng đầu vào:

Kết quả chuyển đổi

Kiểu dữ liệuABCD (Big Endian)DCBA (Little Endian)BADCCDAB
UINT16
Số nguyên không dấu 16-bit
-
-
INT16
Số nguyên có dấu 16-bit
-
-
UINT32
Số nguyên không dấu 32-bit
-
-
-
-
INT32
Số nguyên có dấu 32-bit
-
-
-
-
FLOAT32
Số thực 32-bit
-
-
-
-
UINT64
Số nguyên không dấu 64-bit
-
-
-
-
INT64
Số nguyên có dấu 64-bit
-
-
-
-
FLOAT64
Số thực 64-bit
-
-
-
-

Hướng dẫn sử dụng

Tổng quan chức năng

Công cụ chuyển đổi kiểu dữ liệu chuyên dùng để chuyển đổi giữa các định dạng dữ liệu khác nhau, hỗ trợ chuyển đổi qua lại giữa hệ thập lục phân và thập phân, bao gồm các kiểu dữ liệu số nguyên và số thực từ 16-bit đến 64-bit. Số nguyên sử dụng biểu diễn bù hai (Two's Complement); số thực sử dụng mã hóa IEEE-754 (đơn 32-bit/đôi 64-bit), giúp quan sát trực quan ảnh hưởng của thứ tự byte đến kết quả.

Chức năng chính:

  • Chuyển đổi định dạng: Hỗ trợ chuyển đổi qua lại giữa hệ thập lục phân và thập phân
  • Nhiều kiểu dữ liệu: Hỗ trợ 8 kiểu dữ liệu phổ biến (UINT16/INT16/UINT32/INT32/FLOAT32/UINT64/INT64/FLOAT64)
  • Hỗ trợ thứ tự byte: Hỗ trợ 4 loại thứ tự byte (ABCD/DCBA/BADC/CDAB), thích ứng với yêu cầu của các thiết bị và thứ tự từ thanh ghi khác nhau
  • Chuyển đổi thời gian thực: Hiển thị ngay lập tức kết quả chuyển đổi của tất cả các kiểu sau khi nhập dữ liệu

Cách sử dụng

  • 1. Chọn định dạng đầu vào: Thập phân hoặc Thập lục phân
  • 2. Nhập giá trị vào ô đầu vào
  • 3. Xem kết quả chuyển đổi trong bảng bên dưới
  • 4. Kết quả chuyển đổi vượt quá phạm vi sẽ hiển thị là '-'

Hướng dẫn định dạng đầu vào

  • Đầu vào thập phân: Nhập trực tiếp số, ví dụ: 123, -456, 3.14
  • Đầu vào thập lục phân: Nhập các ký tự hệ 16, ví dụ: 7B, FF00, A1B2C3D4
  • Tự động định dạng thập lục phân: Tự động thêm số 0 ở đầu để đảm bảo số ký tự chẵn và thêm dấu cách để phân tách

Giải thích kiểu dữ liệu

Kiểu số nguyên:UINT16/INT16 là 2 byte, UINT32/INT32 là 4 byte, UINT64/INT64 là 8 byte; số nguyên có dấu sử dụng biểu diễn bù hai (Two's Complement), bit cao nhất là bit dấu, số âm được tính bằng cách lấy bù của giá trị tuyệt đối (đảo bit + 1), khi hiển thị sẽ mở rộng dấu theo độ rộng bit mục tiêu.

Kiểu số thực:FLOAT32 là số thực đơn 4 byte (1 bit dấu + 8 bit mũ + 23 bit định trị, độ lệch mũ 127), FLOAT64 là số thực đôi 8 byte (1 bit dấu + 11 bit mũ + 52 bit định trị, độ lệch mũ 1023), đều tuân thủ tiêu chuẩn IEEE-754; hỗ trợ các giá trị đặc biệt như ±0, ±∞ và NaN (không phải là số), số không chuẩn (Subnormal) sẽ được biểu diễn bằng số mũ rất nhỏ.

Giới hạn phạm vi: Các giá trị vượt quá phạm vi kiểu dữ liệu sẽ hiển thị là '-'

Giải thích thứ tự byte

  • ABCD: Big Endian, byte cao ở trước (ví dụ một số PLC/thiết bị điều khiển công nghiệp)
  • DCBA: Little Endian, byte thấp ở trước (ví dụ hầu hết kiến trúc x86)
  • BADC: Tráo đổi byte (hoán đổi AB↔BA, CD↔DC theo bước 16-bit), thường thấy trong việc tráo đổi hai byte của dữ liệu 32-bit
  • CDAB: Tráo đổi byte (hoán đổi hai byte trước và sau trong nhóm 32-bit), tương thích với một số thứ tự từ thanh ghi Modbus

Lưu ý: Thứ tự byte (Byte Endianness) và thứ tự từ thanh ghi (Word Order) là các khái niệm khác nhau; dữ liệu 16-bit chỉ có hai cách sắp xếp ABCD và DCBA có ý nghĩa, dữ liệu 64-bit nên tham khảo sơ đồ tám byte ABCDEFGH để tránh nhầm lẫn.

Kiến thức về chuyển đổi dữ liệu

Chuyển đổi kiểu dữ liệu là gì?

Chuyển đổi kiểu dữ liệu là quá trình chuyển đổi cùng một giá trị số giữa các định dạng biểu diễn khác nhau, bao gồm chuyển đổi giữa các hệ cơ số (thập phân/thập lục phân) và các kiểu dữ liệu khác nhau (số nguyên/số thực). Thường gặp trong việc phân tích giá trị thanh ghi và tạo khung dữ liệu trong các kịch bản Modbus/PLC/nhúng.

Định dạng số thực IEEE-754 (đơn/đôi)

Độ chính xác đơn (32-bit) = 1 bit dấu + 8 bit mũ (độ lệch 127) + 23 bit định trị; Độ chính xác đôi (64-bit) = 1 bit dấu + 11 bit mũ (độ lệch 1023) + 52 bit định trị. Hỗ trợ ±0, ±∞, NaN; khi tất cả các bit mũ bằng 0 và định trị khác 0 là số không chuẩn (Subnormal), dùng để biểu diễn các số rất nhỏ gần 0.

Bù hai (Two's Complement) và số nguyên có dấu

Bù hai được tính bằng cách đảo tất cả các bit của giá trị tuyệt đối rồi cộng 1, bit cao nhất là bit dấu. Khi phân tích HEX thành kiểu INT, cần mở rộng dấu theo độ rộng bit; khi bit cao nhất là 1 biểu thị số âm, cần khôi phục theo quy tắc bù hai.

Thứ tự byte (Endianness) và Thứ tự từ thanh ghi (Word Order)

Thứ tự byte kiểm soát cách các byte được sắp xếp trong bộ nhớ (ABCD/DCBA), thứ tự từ thanh ghi kiểm soát thứ tự của các từ thanh ghi cao và thấp 16-bit (ví dụ BADC/CDAB). Cả hai thường ảnh hưởng đến việc hiển thị và phân tích dữ liệu 32/64-bit, nên phải nhất quán với tài liệu của thiết bị.

Số nguyên 64-bit và số nguyên an toàn trong JavaScript

Kiểu Number trong trình duyệt là số thực đôi IEEE-754, phạm vi số nguyên an toàn là ±(2^53-1). Công cụ này sử dụng BigInt để chuyển đổi và hiển thị trong kịch bản 64-bit; khi giá trị vượt quá phạm vi kiểu dữ liệu mục tiêu hoặc có nguy cơ mất độ chính xác, sẽ hiển thị '-'.

Chuẩn hóa đầu vào HEX

Đầu vào HEX sẽ tự động loại bỏ các ký tự không phải thập lục phân, chuyển thành chữ hoa, và thêm số 0 ở đầu nếu cần để đảm bảo số ký tự chẵn; khi hiển thị sẽ nhóm mỗi hai ký tự và thêm dấu cách để dễ đọc hơn.

Quy tắc cho số thực và kiểu số nguyên

Khi đầu vào thập phân có dấu phẩy động và mục tiêu là kiểu số nguyên, sẽ hiển thị '-'; chỉ khi mục tiêu là FLOAT32/FLOAT64 mới thực hiện chuyển đổi số thực.

Những hiểu lầm phổ biến: Big/Little Endian và thứ tự bit, hiển thị NaN/Infinity

Big/Little Endian chỉ ảnh hưởng đến thứ tự byte, thứ tự bit trong byte không thay đổi; NaN có nhiều dạng mã hóa nhưng đều hiển thị là NaN; ±0 được phân biệt trong IEEE-754, nhưng thường tương đương khi so sánh giá trị số.

Các trường hợp ứng dụng

  • Chuyển đổi định dạng dữ liệu giao tiếp Modbus
  • Gỡ lỗi kiểu dữ liệu PLC
  • Cấu hình tham số thiết bị công nghiệp
  • Phân tích giao thức truyền thông
  • Phát triển hệ thống thu thập dữ liệu
  • Tính toán giá trị thanh ghi thiết bị
  • Chuyển đổi số thực và số nguyên
  • Thích ứng định dạng dữ liệu cho nhiều thiết bị
Công cụ chuyển đổi kiểu dữ liệu | Chuyển đổi Số thực IEEE754/Thập lục phân/Thập phân / Hỗ trợ Nhiều thứ tự byte (Big Endian/Little Endian/Big Endian-Byte Swap/Little Endian-Byte Swap) / Chuyển đổi Thời gian thực