Название: несколько int в массив bool побитово. Отправлено: Alexey_Bulatov от Октябрь 29, 2018, 16:30 Товарищи, есть задачка, как решить большим кол-вом строк знаю, но хочу как-то компактно.
есть 3 переменных типа int; есть массив bool на 48 элементов; надо взять от каждого инта по 16 первых бит и записать их в массив булов. хелп) Название: Re: несколько int в массив bool побитово. Отправлено: Igors от Октябрь 29, 2018, 17:36 Код
Название: Re: несколько int в массив bool побитово. Отправлено: sergek от Октябрь 29, 2018, 17:41 Одна строка лишняя)))
Название: Re: несколько int в массив bool побитово. Отправлено: Alexey_Bulatov от Октябрь 30, 2018, 08:33 Благодарю!
Название: Re: несколько int в массив bool побитово. Отправлено: deMax от Октябрь 30, 2018, 09:19 Одна строка лишняя))) Две, одного "for" и "memcpy" хватит.Название: Re: несколько int в массив bool побитово. Отправлено: Igors от Октябрь 30, 2018, 09:23 Одна строка лишняя))) Две, одного "for" и "memcpy" хватит. Прошу исполнить :)Название: Re: несколько int в массив bool побитово. Отправлено: deMax от Октябрь 30, 2018, 10:51 memcpy не прокатит для bool[48], так как он занимает 48 байт. Мой способ на другом типе(у автора тип массива не указан).
Код: QByteArray ba; Хотя тут QBitArray нужен для массива. Название: Re: несколько int в массив bool побитово. Отправлено: sergek от Октябрь 30, 2018, 11:09 Не так, не? ))
Код
Название: Re: несколько int в массив bool побитово. Отправлено: deMax от Октябрь 30, 2018, 11:15 QBitArray bita(48);
QList<int> ia = {0x00FFFF0F, 0x00FF0000, 0x00FFFF00}; uint16_t *pBit = (uint16_t*)bita.data_ptr()->data(); for(int i=0; i < 3; ++i) pBit = ia & 0xFFFF; Не так, не? )) i/16 и i%16, жирные операции, но компилятор это исправит.Название: Re: несколько int в массив bool побитово. Отправлено: Alexey_Bulatov от Октябрь 30, 2018, 16:23 да, именно bool[48] на 48 байт у меня.
Название: Re: несколько int в массив bool побитово. Отправлено: __Heaven__ от Октябрь 30, 2018, 22:07 Компилетайм биты! :)
Код
https://ideone.com/5No9tm |