Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Phương thức DataView.getUint32() trong JavaScript

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 đọc
  • littleEndian: Tùy chọn, true = little-endian, mặc định false
  • 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 number là Float64, đại diện chính xác mọi uint32