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

Binary Big Endianness Generators

Boost , Spirit 2.5.2 , Binary Generators

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/karma/binary.hpp>
#include <boost/spirit/include/karma_binary.hpp>

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

Namespace

Имя

<boost::spirit::big_word// alias: boost::spirit::karma::big_word>

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

<boost::spirit::big_qword// alias: boost::spirit::karma::big_qword>

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

<boost::spirit::big_bin_double// alias: boost::spirit::karma::big_bin_double>

[Note]Note

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

Model of

Notation

w

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

dw

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

qw

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

f

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

d

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

Expression Semantics

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

выражение

Описание

<big_word>

Выведите двоичное представление наименее значимых 16 бит обязательного атрибута в большом эндианном представлении. Этот генератор никогда не выходит из строя (если основной выходной поток не сообщает об ошибке).

<big_dword>

Выведите двоичное представление наименее значимых 32 битов обязательного атрибута в большом эндианном представлении. Этот генератор никогда не выходит из строя (если основной выходной поток не сообщает об ошибке).

<big_qword>

Выведите двоичное представление наименее значимых 64 битов обязательного атрибута в большом эндианном представлении. Этот генератор никогда не выходит из строя (если основной выходной поток не сообщает об ошибке).

<big_bin_float>

Выведите двоичное представление обязательного флоат-атрибута в большое эндиан-представление. Этот генератор никогда не выходит из строя (если основной выходной поток не сообщает об ошибке).

<big_bin_double>

Выведите двоичное представление обязательного двойного атрибута в большом эндианном представлении. Этот генератор никогда не выходит из строя (если основной выходной поток не сообщает об ошибке).

<big_word(w)>

Выведите двоичное представление наименее значимых 16 битов непосредственного параметра в большом эндианном представлении. Этот генератор никогда не выходит из строя (если основной выходной поток не сообщает об ошибке).

<big_dword(dw)>

Выведите двоичное представление наименее значимых 32 битов непосредственного параметра в большом эндианном представлении. Этот генератор никогда не выходит из строя (если основной выходной поток не сообщает об ошибке).

<big_qword(qw)>

Выведите двоичное представление наименее значимых 64 битов непосредственного параметра в большом эндианном представлении. Этот генератор никогда не выходит из строя (если основной выходной поток не сообщает об ошибке).

<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

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

Некоторые включают:

#include <boost/spirit/include/karma.hpp>
#include <boost/spirit/include/support_utree.hpp>
#include <boost/spirit/include/phoenix_core.hpp>
#include <boost/spirit/include/phoenix_operator.hpp>
#include <boost/fusion/include/std_pair.hpp>
#include <iostream>
#include <string>

Некоторые используют декларации:

using boost::spirit::karma::big_word;
using boost::spirit::karma::big_dword;
using boost::spirit::karma::big_qword;

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

test_binary_generator("\x02\x01", 2, big_word(0x0201));
test_binary_generator("\x04\x03\x02\x01", 4, big_dword(0x04030201));
test_binary_generator("\x08\x07\x06\x05\x04\x03\x02\x01", 8, big_qword(0x0807060504030201LL));
test_binary_generator_attr("\x02\x01", 2, big_word, 0x0201);
test_binary_generator_attr("\x04\x03\x02\x01", 4, big_dword, 0x04030201);
test_binary_generator_attr("\x08\x07\x06\x05\x04\x03\x02\x01", 8, big_qword, 0x0807060504030201LL);


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:40:32/0.029281854629517/1