Вопросы по теме 'bit-fields'

Ошибка при попытке определить 1024-битное (128-байтовое) битовое поле.
Я хотел бы определить большое битовое поле с целью быстрого мониторинга состояния очень большой структуры элементов. Вот что у меня есть до сих пор: #define TOTAL_ELEMENTS 1021 typedef struct UINT1024_tag { UINT8 byte[128]; } UINT1024;...
4791 просмотров
schedule 10.05.2024

Как выполнить приведение битового поля к указателю?
Я написал следующий фрагмент кода, который создает предупреждение: инициализация делает указатель из целого числа без приведения OR A предупреждение: приведение к указателю из целого числа разного размера из gcc (GCC) 4.1.1...
3681 просмотров

массив байтов как битовое поле в С#?
Есть ли встроенный класс или что-то в .NET, которое позволило бы мне обрабатывать массив байтов как большое битовое поле?
1299 просмотров
schedule 02.03.2023

Взаимоисключающие смежные диапазоны из нескольких битовых полей
(Это не домашнее задание класса CS, даже если оно похоже на одно) Я использую битовые поля для представления диапазонов от 0 до 22. В качестве входных данных, например, у меня есть несколько разных диапазонов (порядок не имеет значения). Я...
348 просмотров
schedule 26.02.2023

Go: битовые поля и битовая упаковка
Битовые поля языка C предоставляют довольно удобный метод определения полей произвольной ширины в структуре (не говоря уже о проблемах с переносимостью). Например, вот простая структура с парой полей и «флагом»: #pragma pack(push,1) struct...
8230 просмотров
schedule 06.08.2022

Доступ к битовым полям при чтении / записи двоичных структур данных
Пишу парсер для двоичного формата. Этот двоичный формат включает в себя разные таблицы, которые снова в двоичном формате и обычно содержат поля разного размера (где-то от 50 до 100). Большинство этих структур будут иметь битовые поля и будут...
6166 просмотров
schedule 03.10.2022

Реализация динамических битовых полей
Дело в том, что может произойти в следующей задаче. -Элементы массива int имеют длину, скажем, 5, 5, 6, 7, 9 бит (они разные). Как мне его закодировать, чтобы он занимал 32 бита вместо обычных 160 бит? Я также хочу сказать, что с другой...
1352 просмотров

2-битный массив битовых полей влияет на производительность и эффективность кеша?
Мне нужен 2-битный массив, меня вообще не интересует экономия памяти, но меня интересует минимизация промахов кеша и максимизация эффективности кеша. Использование массива логических значений потребует в 4 раза больше памяти, а это означает, что на...
620 просмотров

информация о заполнении структуры
struct abc { char arr[7]; char arr1[2]; int i:24; }; В приведенной выше структуре с помощью оператора sizeof я получил ее размер 12 байт. Но по моим расчетам (может ошибаться) должно быть 16 байт. Почему он дает 12 байт? Другой...
1159 просмотров
schedule 09.07.2022

Каково практическое использование битовых полей в языке C?
Я читаю учебник по C (на французском языке), и в абзаце они говорят о битовых полях, и они дали следующий пример без особых объяснений: struct register { unsigned int mask : 3; signed int privilege : 6; unsigned int : 6; /* not used */...
1112 просмотров
schedule 21.02.2023

Отображение структуры битового поля в энергозависимый регистр
Я пишу приложение, которое взаимодействует с рядом регистров, определенных в VHDL. Регистры имеют ширину 32 бита и распределены по группам. Мне предоставляется базовый адрес группы и 32-битные смещения для каждого члена группы. Вот пример одной...
9100 просмотров
schedule 27.06.2022

Битовые поля в C и C++: где они используются?
Я работаю с C и C++ в течение некоторого времени. Изучая основы, вы можете столкнуться с такими интересными вещами, как битовые поля . . Использование битовых полей в практике программирования носит несколько спорный характер. В каких...
318 просмотров
schedule 21.05.2023

Несоосность элементов в структурах
В C некоторые элементы структуры имеют тенденцию иметь смещенные смещения, как в случае этого потока в Сообщество HPUX В таком случае предлагается использовать битовое поле нулевой ширины для выравнивания (смещенного) следующего элемента. При...
951 просмотров
schedule 04.11.2022

Обеспечение ширины значений перечисления в структуре в C99
У меня есть структура, предназначенная для использования 32-битного хранилища: struct foo_t { color_t color : 10 some_type_t some_field : 22; } , где color_t — это перечисление, определенное как typedef enum { RED = 0,...
956 просмотров
schedule 14.07.2023

Возможны ли 2-битные массивы битовых полей С++?
У меня есть структура 2-битных битовых полей, например: struct MyStruct { unsigned __int32 info0 : 2; unsigned __int32 info1 : 2; unsigned __int32 info2 : 2; ... unsigned __int32 info59 : 2; }; И еще один, подобный...
593 просмотров
schedule 15.01.2023

Присвоить целочисленное значение структуре
У меня есть структура, определенная как: typedef struct { uint8_t field1 : 6, uint8_t field2 : 1, uint8_t field3 : 1 } myStruct; а потом: myStruct s; Каков безопасный способ присвоить 8-битное значение всем полям сразу,...
3200 просмотров
schedule 13.03.2024

Значения по умолчанию для битовых полей в С++ 11
Это работает: struct A { unsigned int x = 0; }; Это также работает: struct A { unsigned int x : 1; }; Можно ли совместить два? То есть инициализировать и указывать размер одновременно? Или мне нужно явно написать конструктор...
996 просмотров
schedule 19.02.2024

Битовые поля в C - выравнивание и инициализация
Поскольку я новичок в битовых полях, мне нужен совет относительно того, что происходит с различными примерами, которые я видел в Интернете. Я хочу использовать битовые поля вместо битовых масок для удобства чтения и упрощения обслуживания в...
186 просмотров
schedule 12.11.2023

Битовые поля и выравнивание
Пытаюсь упаковать данные в пакет. Этот пакет должен быть 64-битным. У меня есть это: typedef union { uint64_t raw; struct { unsigned int magic : 8; unsigned int parity : 1; unsigned int stype : 8; unsigned int sid...
1395 просмотров
schedule 12.12.2022

Битовые поля Keil выделяют неправильный размер объединения/структуры
typedef union { struct { union { struct { unsigned int dev_t : 4; // Device Type, see DEV_type_t unsigned int dev_n : 7; // Device Number }; unsigned int id : 11; // CAN_ID }; unsigned int online : 1; unsigned int...
287 просмотров
schedule 06.03.2023