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

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

DataView.getInt8() đọc một số nguyên 8-bit có dấu (-128 đến 127) tại vị trí byte chỉ định. Đây là phương thức đọc kích thước nhỏ nhất trong DataView.

Cú pháp

dataView.getInt8(byteOffset)
  • byteOffset: Vị trí byte (0-based)
  • Trả về: Số nguyên 8-bit có dấu (-128 đến 127)
  • Không có tham số endianness (1 byte không có thứ tự byte)

Ví dụ cơ bản

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

view.setInt8(1, 362); // 362 = 0x16A -> chỉ giữ 8 bit thấp: 0x6A = 106
console.log(view.getInt8(1)); // 106

Xử lý giá trị float và tràn số

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

view.setInt8(1, 362.23); // Phần thập phân bị bỏ -> 362 -> 106
console.log(view.getInt8(1)); // 106

view.setInt8(1, 200); // 200 > 127 -> tràn số bù 2: 200 - 256 = -56
console.log(view.getInt8(1)); // -56

Đọc vị trí chưa ghi

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

view.setInt8(1); // Không truyền giá trị -> ghi 0
console.log(view.getInt8(1)); // 0

Biểu diễn bù 2 (Two's Complement)

Giá trị ghiHexBinaryGiá trị đọc (Int8)
00x00000000000
1270x7F01111111127
1280x8010000000-128
2550xFF11111111-1
3620x6A01101010106

Ứng dụng

  • Đọc byte đơn lẻ: magic number, version, flags
  • Xử lý protocol 1 byte (nhiều protocol IoT, BLE)
  • Đọc dữ liệu ký tự ASCII/UTF-8 từng byte

Lưu ý

  • Giá trị đầu vào bị modulo 256 (giữ 8 bit thấp)
  • Kết quả được hiểu theo bù 2 (signed)
  • Vượt ranh buffer ném RangeError