JavaScript DataView.getInt16() — прочитати 16-бітне число
Метод getInt16() читає два байти як число зі знаком: від −32 768 до 32 767.
Загальний опис
Ось тут уже з'являється порядок байтів — і другий аргумент стає критичним.
false (або нічого) означає big-endian: старший байт першим. Так влаштовані майже всі мережеві формати.
true означає little-endian: молодший байт першим. Так зберігає числа процесор.
Переплутавши порядок, отримаєш число, схоже на правду, але зовсім інше — і зрозуміти це буває дуже непросто.
автор: NagarD
- Порада
-
Мережеві дані — майже завжди big-endian, тобто другий аргумент
автор: NagarDfalse. Файли, створені програмою на цій машині, — навпаки,true.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| getInt16 | 9+ | 15+ | 5.1+ | 12.1+ | 12+ | 10+ |
| Переглядач | ||||
|---|---|---|---|---|
| getInt16 | 4+ | yes | yes | 4.2+ |
Приклади
+ запропонувати свій приклад у пісочниці
Порядок байтів вирішує все.
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 — переплутали порядок
Коментарі
Коментарів ще немає — будьте першим!