• Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
Theme Center
  • Theme Center
  • default

  • reset theme
Collapse

tonpie.io

Подпишись на канал фаундера и разработчика экосистемы tonpie

[Решено] Что здесь означает `Big-endian по умолчанию`?

Запланировано Прикреплена Закрыта Перенесена TON Overflow на русском
a-tvma-whitepaper
2 Сообщения 1 Posters 67 Просмотры
    • Сначала старые
    • Сначала новые
    • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано
    #1

    В техническом документе TVM мы получили это в главе 3.2.8:

    Целые числа в ячейках по умолчанию имеют большой порядок следования. > Обратите внимание, что > порядок битов в целых числах s, сериализованных в ячейки по умолчанию, является большим, а не меньшим.14 В этом отношении TVM - это машина с большим концом. Однако это > влияет > только на сериализацию целых чисел внутри ячеек. Внутреннее представление типа целочисленного значения зависит от реализации и не имеет отношения к работе TVM. Кроме того, существуют некоторые специальные примитивы, такие как STULE > для (де) сериализации целых чисел с малым порядком следования, которые должны быть сохранены в виде целого числа байт (в противном случае “порядок следования с малым порядком следования” не имеет смысла, если только вы также не хотите изменить порядок битов внутри октетов). Такие > примитивы > полезны для взаимодействия с миром little-endian — например, для > разбора > сообщений пользовательского формата, поступающих в смарт-контракт TON Blockchain из > внешнего мира.

    Пожалуйста, поделитесь со мной, что это такое и почему это важно

    Ссылка: https://docs.ton.org/tvm.pdf


    Оригинал вопроса

    1 ответ Последний ответ
    0
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано tonpie
    #2

    Решено

    В целом

    В порядке байтов с большим числом байтов **самый значимый байт (MSB) хранится по самому низкому адресу памяти, а наименее значимый байт (LSB) хранится по самому высокому адресу памяти.

    Это также известно как сетевой порядок байтов, потому что это формат, используемый в интернет-протоколах, таких как TCP/IP в целом.

    Биг-энд в TVM

    В TVM целые числа внутри ячеек по умолчанию сериализуются с использованием формата big-endian. Это означает, что когда целое число преобразуется в последовательность байтов для сохранения, самый старший байт помещается в начало.

    Пример 1: Сериализация с большим порядком байтов

    Рассмотрим 16-разрядное целое число 0xABCD. В формате big-endian он будет сохранен в виде:

    0xAB 0xCD
    

    Little-Endian со специальными примитивами

    В тексте также упоминаются специальные примитивы, такие как STULE, которые позволяют (де) сериализовать целые числа с малым порядком следования. В системе с младшим порядком байтов первым сохраняется наименее значимый байт.

    Пример 2: Сериализация в строгом порядке

    Используя little-endian для того же целого числа 0xABCD, оно будет сохранено как:

    0xCD 0xAB
    

    Отношение к TVM

    • По умолчанию используется Big-Endian : TVM использует big-endian для стандартной сериализации целых чисел внутри ячеек, что делает его машиной с большим порядком байтов в этом отношении.
    • Внутреннее представление: Внутреннее представление целых чисел в TVM зависит от реализации и не имеет отношения к тому, как работает TVM.
    • Примитивы с литтл-эндианом : Доступны специальные примитивы для обработки целых чисел с литтл-эндианом, которые могут быть полезны при взаимодействии с системами или форматами данных, использующими литтл-эндиан. Это может быть важно для анализа пользовательских сообщений из внешних источников.

    Краткое описание

    Понимание последовательности имеет жизненно важное значение при работе с низкоуровневыми манипуляциями с данными в TVM.

    По умолчанию TVM использует big-endian, но при необходимости существуют инструменты для обработки данных в формате little- endian.

    Выбор между big-endian и little-endian влияет на то, как данные считываются из памяти и записываются в нее, поэтому важно знать, какой конкретный формат используется в контексте TVM или любой другой системы, с которой вы работаете.

    1 ответ Последний ответ
    0

  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.