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

  • reset theme
Collapse

tonpie.io

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

Каков наилучший способ понять передачу & и кода операции в TEP?

Запланировано Прикреплена Закрыта Перенесена TON Overflow на русском
a-crc32a-opcodea-tep
2 Сообщения 1 Posters 57 Просмотры
    • Сначала старые
    • Сначала новые
    • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано
    #1
    Tags were calculated via tlbc as follows (request_flag is equal to 0x7fffffff and response flag is equal to 0x80000000):
    
    crc32('transfer query_id:uint64 new_owner:MsgAddress response_destination:MsgAddress custom_payload:Maybe ^Cell forward_amount:VarUInteger 16 forward_payload:Either Cell ^Cell = InternalMsgBody') = 0x5fcc3d14 & 0x7fffffff = 0x5fcc3d14
    
    crc32('ownership_assigned query_id:uint64 prev_owner:MsgAddress forward_payload:Either Cell ^Cell = InternalMsgBody') = 0x85138d91 & 0x7fffffff = 0x05138d91 
    
    more....
    

    Мой вопрос в том, почему первый и второй получили разный результат:

    • 0x5fcc3d14 & 0x7fffffff => 0x5fcc3d14 🟢 * 0x85138d91 & 0x7fffffff => 0x05138d91 â�“

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

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

    Шестнадцатеричная цифра 0xF имеет двоичное представление "1111". Все, что имеет "&" с ней, останется прежним.

    Шестнадцатеричная цифра 0x7 имеет такое двоичное представление: "0111". Все, что содержит "&" с ней, потеряет первый бит, или первый бит станет нулевым.

    В вашем первом примере "0x5... & 0x7..." остается "0x5...", потому что "5" имеет двоичное представление "0101", а первый бит уже равен 0.

    В вашем втором примере "0x8... & 0x7..." изменено на "0x0...", потому что "8" имеет двоичное представление "1000", и после установки первого бита на "0" у нас будет 0000 или шестнадцатеричная цифра 0x0.

    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.