РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
78 of 723 menu

Тип ByteData

Тип ByteData - доступ к последовательности байтов с чтением и записью чисел заданной ширины. По смещению в байтах можно прочитать один байт, два, четыре или восемь. Для числа шире одного байта указывают порядок: Endian.big или Endian.little. Если порядок не указан, берётся big-endian, от старшего байта к младшему. Один и тот же байт можно прочитать как знаковое или как беззнаковое число. Тип объявлен в библиотеке dart:typed_data.

Синтаксис

ByteData(int length) ByteData.view(ByteBuffer buffer, [int offsetInBytes = 0, int? length])

Пример

Давайте запишем байт и двухбайтовое число, а затем прочитаем их обратно:

import 'dart:typed_data'; void main() { ByteData data = ByteData(4); data.setUint8(0, 10); data.setUint16(2, 1000); print(data.getUint8(0)); print(data.getUint16(2)); print(data.lengthInBytes); }

Результат выполнения кода:

10 1000 4

Пример

Давайте запишем число 1 двумя байтами в порядке little-endian и посмотрим оба байта:

import 'dart:typed_data'; void main() { ByteData data = ByteData(2); data.setUint16(0, 1, Endian.little); print(data.getUint8(0)); print(data.getUint8(1)); }

Результат выполнения кода:

1 0

Пример

Давайте запишем байт со знаком -1 и прочитаем его как беззнаковый и как знаковый:

import 'dart:typed_data'; void main() { ByteData data = ByteData(1); data.setInt8(0, -1); print(data.getUint8(0)); print(data.getInt8(0)); }

Результат выполнения кода:

255 -1

Смотрите также

  • тип ByteBuffer,
    который хранит общий кусок памяти
  • тип Uint8List,
    который хранит список байтов
  • тип TypedData,
    который описывает общие байтовые данные
  • тип Int16List,
    который хранит знаковые 16 бит
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить