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

Binary Big Endianness Parsers

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::big_word// alias: boost::spirit::qi::big_word>

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

boost::spirit::big_qword // alias: boost::spirit::qi::big_qword

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

boost::spirit::big_bin_double // alias: boost::spirit::qi::big_bin_double

[Note]Note

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

Model of

Notation

w

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

dw

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

qw

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

f

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

d

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

Expression Semantics

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

выражение

Описание

big_word

big_dword

Соответствует любому 32-битному бинарному эндиану.

big_qword

big_bin_float

Соответствует любой плавающей бинарной системе.

big_bin_double

Соответствует любой двойной бинарной системе.

big_word(w)

Соответствует точному 16-битному бинарному эндиану.

<big_dword(dw)>

big_qword(qw)

big_bin_float(f)

<big_bin_double(d)>

Attributes

выражение

атрибут

big_word

boost::uint_least16_t

big_dword

boost::uint_least32_t

big_qword

boost::uint_least64_t

big_bin_float

float

big_bin_double

double

big_word(w)

<unused>

<big_dword(dw)>

<unused>

big_qword(qw)

<unused>

big_bin_float(f)

<unused>

<big_bin_double(d)>

<unused>

Complexity

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

Example
[Note]Note

Тестовый ремень для примера (примеров) ниже представлен в разделеОсновные примеры.

Использование деклараций и переменных:

using boost::spirit::qi::big_word;
using boost::spirit::qi::big_dword;
using boost::spirit::qi::big_qword;
boost::uint16_t us;
boost::uint32_t ui;
boost::uint64_t ul;

Основное использование бинарных парсеров большого эндиана:

test_parser_attr("\x01\x02", big_word, us); assert(us ==  0x0102);
test_parser_attr("\x01\x02\x03\x04", big_dword, ui); assert(ui == 0x01020304);
test_parser_attr("\x01\x02\x03\x04\x05\x06\x07\x08", big_qword, ul);
assert(0x0102030405060708LL);
test_parser("\x01\x02", big_word(0x0102));
test_parser("\x01\x02\x03\x04", big_dword(0x01020304));
test_parser("\x01\x02\x03\x04\x05\x06\x07\x08",
    big_qword(0x0102030405060708LL));


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:44:38/0.0070779323577881/0