JavaScript DataView.getInt16() — прочитати 16-бітне число


Метод getInt16() читає два байти як число зі знаком: від −32 768 до 32 767.

автор: NagarD

Загальний опис

Ось тут уже з'являється порядок байтів — і другий аргумент стає критичним.

false (або нічого) означає big-endian: старший байт першим. Так влаштовані майже всі мережеві формати.

true означає little-endian: молодший байт першим. Так зберігає числа процесор.

Переплутавши порядок, отримаєш число, схоже на правду, але зовсім інше — і зрозуміти це буває дуже непросто.

автор: NagarD

Порада

Мережеві дані — майже завжди big-endian, тобто другий аргумент false. Файли, створені програмою на цій машині, — навпаки, true.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
getInt16 9+ 15+ 5.1+ 12.1+ 12+ 10+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
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 — переплутали порядок
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід