JavaScript DataView.getInt8() — прочитати байт зі знаком (−128…127)


Метод getInt8() читає байт зі знаком — число від −128 до 127.

автор: NagarD

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

Ті самі біти, інше тлумачення. Байт зі значенням 255 як беззнаковий — це 255, а як знаковий — це −1: старший біт вважається знаком.

Звідси головна порада: тип поля має бути записаний у специфікації формату, а не вгаданий. Переплутавши знаковість, ти отримаєш правдоподібні, але хибні числа — і це найпідступніший клас помилок.

автор: NagarD

Нотатка

Той самий байт дає 255 через getUint8() і −1 через getInt8(). Помилка не проявиться на малих значеннях і вилізе лише на великих.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
getInt8 9+ 15+ 5.1+ 12.1+ 12+ 10+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
getInt8 4+ yes yes 4.2+

Приклади

+ запропонувати свій приклад у пісочниці

Ті самі біти — два різні числа.

const view = new DataView(new ArrayBuffer(1));

view.setUint8(0, 255);

console.log(view.getUint8(0)); // 255
console.log(view.getInt8(0));  // -1 — ті самі біти!
автор: NagarD

Коментарі

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

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

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

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

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

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

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

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

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

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

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