![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Binary Little Endianness ParserBoost , Spirit 2.5.2 , Binary Parsers
|
Имя |
---|
< |
< |
boost::spirit::little_qword //
alias: boost::spirit::qi::little_qword |
< |
boost::spirit::little_bin_double //
alias: boost::spirit::qi::little_bin_double |
![]() | Note |
---|---|
< |
Notation
w
16-битное двоичное значение илиЛенивый аргумент, который оценивает до 16-битного двоичного значения. Это значение всегда в родном эндиане.
dw
32-битное двоичное значение илиЛенивый аргумент, который оценивает до 32-битного двоичного значения. Это значение всегда в родном эндиане.
qw
64-битное двоичное значение илиЛенивый аргумент, который оценивает до 64-битного двоичного значения. Это значение всегда в родном эндиане.
f
Поплавковое двоичное значение илиЛенивый аргумент, который оценивает поплавковое двоичное значение. Это значение всегда в родном эндиане.
d
Двойное двоичное значение илиЛенивый аргумент, который оценивает двойное двоичное значение. Это значение всегда в родном эндиане.
Семантика выражения определяется только там, где она отличается от или не определена в<PrimitiveParser
>.
выражение |
Описание |
---|---|
little_word | |
little_dword | |
little_qword | |
little_bin_float | Соответствует любой плавающей маленькой эндиановой двоичной системе. |
little_bin_double | |
little_word(w) | |
< | Соответствует точной 32-битной бинарной системе. |
little_qword(qw) | Соответствует точной 32-битной бинарной системе. |
little_bin_float(f) | Соответствует точному плавающему малому эндианскому двоичному. |
< | Соответствует точному двойному малоэндианному двоичному. |
выражение |
атрибут |
---|---|
little_word | boost::uint_least16_t |
little_dword | boost::uint_least32_t |
little_qword | boost::uint_least64_t |
little_bin_float | float |
little_bin_double | double |
little_word(w) | < |
< | < |
little_qword(qw) | < |
little_bin_float(f) | < |
< | < |
O(N), где N - число разреженных байтов
![]() | Note |
---|---|
Тестовый ремень для примера (примеров) ниже представлен в разделеОсновные примеры. |
Использование деклараций и переменных:
using boost::spirit::qi::little_word; using boost::spirit::qi::little_dword; using boost::spirit::qi::little_qword; boost::uint16_t us; boost::uint32_t ui; boost::uint64_t ul;
Основное использование маленьких эндианных бинарных парсеров:
test_parser_attr("\x01\x02", little_word, us); assert(us == 0x0201); test_parser_attr("\x01\x02\x03\x04", little_dword, ui); assert(ui == 0x04030201); test_parser_attr("\x01\x02\x03\x04\x05\x06\x07\x08", little_qword, ul); assert(ul == 0x0807060504030201LL); test_parser("\x01\x02", little_word(0x0201)); test_parser("\x01\x02\x03\x04", little_dword(0x04030201)); test_parser("\x01\x02\x03\x04\x05\x06\x07\x08", little_qword(0x0807060504030201LL));
Статья Binary Little Endianness Parser раздела Spirit 2.5.2 Binary Parsers может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Binary Parsers ::
реклама |