Порядок от младшего к старшему (от наименее значимого байта к наиболее значимому) . Этот порядок записи принят в памяти персональных компьютеров с процессорами архитектуры x86.
Полное описание, параметры и ограничения
ПорядокБайтов.LittleEndian (ByteOrder.LittleEndian)
ПорядокБайтов (ByteOrder)
LittleEndian (LittleEndian)
Доступен, начиная с версии 8.3.9.
Описание:
Порядок от младшего к старшему (от наименее значимого байта к наиболее значимому) . Этот порядок записи принят в памяти персональных компьютеров с процессорами архитектуры x86.
Использование в версии:
Доступен, начиная с версии 8.3.9.
Методическая информация
Практические примеры
Записать числовой заголовок пакета и увидеть порядок байтов
16-, 32- и 64-битные поля имеют разные размеры. Записываем в LittleEndian и читаем тем же порядком.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Выполняйте на сервере. Буфер имеет ровно 14 байтов: 2 + 4 + 8.
Здесь только неотрицательные значения, подходящие для размеров полей.
Буфер = Новый БуферДвоичныхДанных(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));Разбор по шагам
Задаём порядок байтов в конструкторе буфера.
Смещения 0, 2 и 6 не пересекаются и оставляют место для целых соответствующих размеров.
Читаем записанные поля; отдельно показываем два байта числа 513.
Читаем те же байты в BigEndian и затем меняем один байт вручную.
Как проверить результат
Поля читаются как 513, 100000 и 5000000000; первые два байта — 1 и 2.
При BigEndian первое число получается 258; после изменения байта 0 на 2 чтение LittleEndian даёт 514.
Ожидаемый результат
Числовой заголовок прочитан правильно при согласованном порядке байтов.
На что обратить внимание
Размер поля и смещение задаются в байтах, а не символах.
Нельзя произвольно заменить 64-битное поле 32-битным: значение 5000000000 уже не помещается в беззнаковые 32 бита.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.