ПорядокБайтов.LittleEndian

Свойства · LittleEndian

Порядок от младшего к старшему (от наименее значимого байта к наиболее значимому) . Этот порядок записи принят в памяти персональных компьютеров с процессорами архитектуры x86.

Полное описание, параметры и ограничения

ПорядокБайтов.LittleEndian (ByteOrder.LittleEndian)

ПорядокБайтов (ByteOrder)

LittleEndian (LittleEndian)

Доступен, начиная с версии 8.3.9.

Описание:
Порядок от младшего к старшему (от наименее значимого байта к наиболее значимому) . Этот порядок записи принят в памяти персональных компьютеров с процессорами архитектуры x86.
Использование в версии:

Доступен, начиная с версии 8.3.9.

Методическая информация

Практические примеры

Записать числовой заголовок пакета и увидеть порядок байтов

16-, 32- и 64-битные поля имеют разные размеры. Записываем в LittleEndian и читаем тем же порядком.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Выполняйте на сервере. Буфер имеет ровно 14 байтов: 2 + 4 + 8.

  2. Здесь только неотрицательные значения, подходящие для размеров полей.

Буфер = Новый БуферДвоичныхДанных(14, ПорядокБайтов.LittleEndian);
Буфер.ЗаписатьЦелое16(0, 513);
Буфер.ЗаписатьЦелое32(2, 100000);
Буфер.ЗаписатьЦелое64(6, 5000000000);
Сообщить(Буфер.ПрочитатьЦелое16(0));
Сообщить(Буфер.ПрочитатьЦелое32(2));
Сообщить(Буфер.ПрочитатьЦелое64(6));
Сообщить(Буфер.Получить(0));
Сообщить(Буфер.Получить(1));
Сообщить(Буфер.ПрочитатьЦелое16(0, ПорядокБайтов.BigEndian));
Сообщить(Буфер.ПорядокБайтов);
Буфер.Установить(0, 2);
Сообщить(Буфер.ПрочитатьЦелое16(0));

Разбор по шагам

  1. Задаём порядок байтов в конструкторе буфера.

  2. Смещения 0, 2 и 6 не пересекаются и оставляют место для целых соответствующих размеров.

  3. Читаем записанные поля; отдельно показываем два байта числа 513.

  4. Читаем те же байты в BigEndian и затем меняем один байт вручную.

Как проверить результат

  1. Поля читаются как 513, 100000 и 5000000000; первые два байта — 1 и 2.

  2. При BigEndian первое число получается 258; после изменения байта 0 на 2 чтение LittleEndian даёт 514.

Ожидаемый результат

Числовой заголовок прочитан правильно при согласованном порядке байтов.

На что обратить внимание

  1. Размер поля и смещение задаются в байтах, а не символах.

  2. Нельзя произвольно заменить 64-битное поле 32-битным: значение 5000000000 уже не помещается в беззнаковые 32 бита.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.