За последние 24 часа нас посетили 22994 программиста и 1239 роботов. Сейчас ищут 755 программистов ...

Вычислить общую сумму

Тема в разделе "PHP для новичков", создана пользователем Sasha55555, 28 мар 2019.

  1. Sasha55555

    Sasha55555 Новичок

    С нами с:
    18 мар 2018
    Сообщения:
    152
    Симпатии:
    0
    Здравствуйте. Упаковываю в бинарный вид
    Код (Text):
    1.  
    2. $id = 1;
    3. $mod = 4;
    4. $сount = 10;
    5. $testmsg = pack("Vici", $packet_length, $id, $mod, $сount);
    Первым параметром является $packet_length - длина всех следующих переменных в байтах. Как осуществить подсчет длины?
     
    #1 Sasha55555, 28 мар 2019
    Последнее редактирование: 28 мар 2019
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    См. PHP_INT_SIZE.
    --- Добавлено ---
    Что прям так необходимо делать размер «пакета» зависящим от тек. платформы?
     
  3. Sasha55555

    Sasha55555 Новичок

    С нами с:
    18 мар 2018
    Сообщения:
    152
    Симпатии:
    0
    Да. А PHP_INT_SIZE только для int значений?
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    А нахуа еще для чего-то?
    --- Добавлено ---
    V и c обозначают поля фикс. размера ;)
     
  5. Sasha55555

    Sasha55555 Новичок

    С нами с:
    18 мар 2018
    Сообщения:
    152
    Симпатии:
    0
    А если s или a?
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    P.S. Для низкоуровневой оптимизации лучше не впихивать чар между «машинными словами» (читай «int'ами»). Помести это поле в конец пакета, если есть такая возможность. Или сделай норм. выравнивание (после) этого поля/не сжимай пакет.
    --- Добавлено ---
    А если мозги не делать? Для a ты сам определяешь размер таких полей.
     
    #6 miketomlin, 28 мар 2019
    Последнее редактирование: 28 мар 2019