Пакеты, поступающие по сети, имеют добавочные байты, добавленные в конце для выравнивания. Я хочу пропустить эти байты, но размер пакета является переменным, но известен. Учитывая число n
, как мне его округлить до следующего 4-байтового выравнивания?Как перейти к следующему 32-битовому выравниванию?
ответ
Для любого целого n
и любой шаг k
(как положительных, так), вы можете вычислить наименьшее кратное k
, что это не меньше, чем n
через:
(n + k - 1)/k * k
Это использует тот факт, что неотъемлемыми деление обрезает.
Итак, для 4-байтового выравнивания это будет '(n + 32 - 1)/32 * 32 '? –
@templateboy: Если вы считаете бит, да, хотя это маловероятно. Вероятно, вы должны рассчитывать в байтах, то есть в размере наименьшей выделяемой (и, следовательно, совместимой) единицы хранения. –
- 1. Перейти к следующему UItextField
- 2. Перейти к следующему charAt()
- 3. Как перейти к следующему маршруту?
- 4. Как перейти к следующему файлу
- 5. ifstream - Перейти к следующему слову
- 6. UIBarButtonItem перейти к следующему viewcontroller
- 7. j2me перейти к следующему мидле
- 8. Перейти к следующему слайду onClick
- 9. TinyXML2 перейти к следующему брату
- 10. AWK: Перейти к следующему файлу
- 11. Невозможно перейти к следующему действию
- 12. Как перейти к следующему следующему описать ошибку в Mocha?
- 13. мангуст обещает, как перейти к следующему .then()
- 14. как перейти к следующему индексу в массиве?
- 15. Как перейти к следующему полю ввода формы
- 16. AS3 Quiz - Как перейти к следующему вопросу?
- 17. Как перейти к следующему фреймворку кадра 3
- 18. как сказать grep, чтобы перейти к следующему
- 19. Как перейти к следующему фрагменту страницы ViewPager?
- 20. Как перейти к следующему фрагменту после popbackstack
- 21. Как перейти к следующему слайду программно?
- 22. Страница портфолио --- Как перейти к следующему ряду
- 23. CasperJS - Как перейти к следующему набору тестов?
- 24. Перейти к следующему действию по кнопке
- 25. Создание TAB Нажмите перейти к следующему полю
- 26. На enter, перейти к следующему выпуску EditText
- 27. перейти к следующему действию без сбоев
- 28. Перейти к следующему абзацу в Eclipse?
- 29. ASP.Net Auto Перейти к следующему TextField
- 30. JQuery: нажмите, чтобы перейти к следующему разделу
http://stackoverflow.com/questions/4840410/how-to-align-a-pointer-in-c – gurka