Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Binary Little Endianness Parser

Boost , Spirit 2.5.2 , Binary Parsers

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
Description

Бинарные малые эндианские парсеры предназначены для разбора бинарных байт-потоков, которые выложены в маленьком эндиане.

Header
// forwards to <boost/spirit/home/qi/binary.hpp>
#include <boost/spirit/include/qi_binary.hpp>

См. такжеВключить структуру.

Namespace

Имя

<boost::spirit::little_word// alias: boost::spirit::qi::little_word>

<boost::spirit::little_dword// alias: boost::spirit::qi::little_dword>

boost::spirit::little_qword // alias: boost::spirit::qi::little_qword

<boost::spirit::little_bin_float// alias: boost::spirit::qi::little_bin_float>

boost::spirit::little_bin_double // alias: boost::spirit::qi::little_bin_double

[Note]Note

<little_qword>доступен только на платформах, где определена постоянная препроцессора<BOOST_HAS_LONG_LONG>(т.е. на платформах, имеющих встроенную поддержку целых типов<unsigned longlong>(64 бит).

Model of

Notation

w

16-битное двоичное значение илиЛенивый аргумент, который оценивает до 16-битного двоичного значения. Это значение всегда в родном эндиане.

dw

32-битное двоичное значение илиЛенивый аргумент, который оценивает до 32-битного двоичного значения. Это значение всегда в родном эндиане.

qw

64-битное двоичное значение илиЛенивый аргумент, который оценивает до 64-битного двоичного значения. Это значение всегда в родном эндиане.

f

Поплавковое двоичное значение илиЛенивый аргумент, который оценивает поплавковое двоичное значение. Это значение всегда в родном эндиане.

d

Двойное двоичное значение илиЛенивый аргумент, который оценивает двойное двоичное значение. Это значение всегда в родном эндиане.

Expression Semantics

Семантика выражения определяется только там, где она отличается от или не определена в<PrimitiveParser>.

выражение

Описание

little_word

little_dword

little_qword

little_bin_float

Соответствует любой плавающей маленькой эндиановой двоичной системе.

little_bin_double

little_word(w)

<little_dword(dw)>

Соответствует точной 32-битной бинарной системе.

little_qword(qw)

Соответствует точной 32-битной бинарной системе.

little_bin_float(f)

Соответствует точному плавающему малому эндианскому двоичному.

<little_bin_double(d)>

Соответствует точному двойному малоэндианному двоичному.

Attributes

выражение

атрибут

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)

<unused>

<little_dword(dw)>

<unused>

little_qword(qw)

<unused>

little_bin_float(f)

<unused>

<little_bin_double(d)>

<unused>

Complexity

O(N), где N - число разреженных байтов

Example
[Note]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));


PrevUpHomeNext

Статья Binary Little Endianness Parser раздела Spirit 2.5.2 Binary Parsers может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Binary Parsers ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:41:39/0.0041348934173584/0