JavaScript DataView.getInt16() — прочитати 16-бітне число
Метод getInt16() читає два байти як число зі знаком: від −32 768 до 32 767.
автор: NagarD
Загальний опис
Ось тут уже з'являється порядок байтів — і другий аргумент стає критичним.
false (або нічого) означає big-endian: старший байт першим. Так влаштовані майже всі мережеві формати.
true означає little-endian: молодший байт першим. Так зберігає числа процесор.
Переплутавши порядок, отримаєш число, схоже на правду, але зовсім інше — і зрозуміти це буває дуже непросто.
автор: NagarD
- Порада
-
Мережеві дані — майже завжди big-endian, тобто другий аргумент false. Файли, створені програмою на цій машині, — навпаки, true.
автор: NagarD
Переглядачі
Приклади
+ запропонувати свій приклад у пісочниці
Порядок байтів вирішує все.
const view = new DataView(new ArrayBuffer(2));
view.setInt16(0, 256, false); // big-endian
console.log(view.getInt16(0, false)); // 256 — правильно
console.log(view.getInt16(0, true)); // 1 — переплутали порядок
автор: NagarD