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

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

DataView.getInt16() đọc một số nguyên 16-bit có dấu (-32,768 đến 32,767) tại vị trí byte chỉ định, hỗ trợ endianness.

Cú pháp

dataView.getInt16(byteOffset [, littleEndian])
  • byteOffset: Vị trí byte bắt đầu
  • littleEndian: Tùy chọn, true = little-endian, mặc định false
  • Trả về: Số nguyên 16-bit có dấu

Ví dụ cơ bản

const buffer = new ArrayBuffer(20);
const view = new DataView(buffer);

view.setInt16(1, 3225);
console.log(view.getInt16(1)); // 3225

Xử lý float và tràn số

const buffer = new ArrayBuffer(20);
const view = new DataView(buffer);

view.setInt16(1, 564.22); // -> 564
console.log(view.getInt16(1)); // 564

view.setInt16(1, 40000); // > 32767 -> tràn
console.log(view.getInt16(1)); // -25536

Đọc vị trí chưa ghi

const buffer = new ArrayBuffer(20);
const view = new DataView(buffer);

view.setInt16(1); // Ghi 0
console.log(view.getInt16(1)); // 0

Biểu diễn bù 2 cho Int16

Giá trị ghiHexGiá trị đọc
00x00000
327670x7FFF32767
327680x8000-32768
655350xFFFF-1
400000x9C40-25536

Ứng dụng

  • Đọc mẫu âm thanh 16-bit (WAV, PCM)
  • Cảm biến nhiệt độ, áp suất (thường dùng int16)
  • Protocol Modbus, CAN bus
  • Định dạng file: BMP (header), TIFF

Lưu ý

  • Phạm vi: -32,768 đến 32,767
  • Cần 2 byte từ byteOffset
  • Endianness quan trọng khi giao tiếp cross-platform