DataView.getUint32() đọc một số nguyên 32-bit không dấu (0 đến 4,294,967,295) tại vị trí byte chỉ định, hỗ trợ endianness.
Cú pháp
dataView.getUint32(byteOffset [, littleEndian])
byteOffset: Vị trí byte bắt đầu đọclittleEndian: Tùy chọn,true= little-endian, mặc địnhfalse- Trả về: Số nguyên 32-bit không dấu (0 - 4,294,967,295)
Ví dụ cơ bản
const buffer = new ArrayBuffer(20);
const view = new DataView(buffer);
view.setUint32(1, 45544);
console.log(view.getUint32(1)); // 45544
Xử lý float
const buffer = new ArrayBuffer(20);
const view = new DataView(buffer);
view.setUint32(1, 455.44); // -> 455
console.log(view.getUint32(1)); // 455
Đọc vị trí chưa ghi
const buffer = new ArrayBuffer(20);
const view = new DataView(buffer);
view.setUint32(1); // Ghi 0
console.log(view.getUint32(1)); // 0
Endianness
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
const value = 0x12345678;
view.setUint32(0, value, false); // Big-endian
view.setUint32(4, value, true); // Little-endian
console.log(view.getUint32(0, false)); // 305419896
console.log(view.getUint32(4, true)); // 305419896
Ứng dụng
- Kích thước file lớn (> 4GB cần Uint64/BigInt)
- Timestamp Unix mili-giây (đủ đến năm ~584 million)
- IPv4 address (32-bit unsigned)
- Checksum CRC32, hash values
- Pointer/offset trong format file 32-bit
Lưu ý
- Phạm vi: 0 đến 4,294,967,295 (232-1)
- Cần 4 byte từ
byteOffset - Float -> truncate
- Vị trí chưa ghi trả về 0
- JavaScript
numberlà Float64, đại diện chính xác mọi uint32