Нефига не понимаю в типах и битовых операциях =)
- Войдите на сайт для отправки комментариев
Вс, 26/01/2014 - 19:28
В примерах видел как переменные Bool хранили в таком виде
byte xz[3] = { B01011010, B01111110, B00001010 }; for (int i =0; i <8; i++) { bool b = ((xz[i] >>i ) & 0x01) }
тут в 1 переменную byte помещается 8 значений bool
мне нужно сделать тоже самое только для хранения 20 бит. Причем обязательно в одной переменой чтобы можно было бы их там двигать, и считывать по фрагментам.
Походу придется использовать long , но он слишком длинный. аж целых 32 бита.
может есть какой способ создать пользовательский тип скажем хотябы на 24 байта или еще какойнибуть способ сыкономить место?
Пользовательскую - никак . Только стандартные.
Ваш xz и есть 3 байта или 24 бита. Только скетч кривой.
Что за задача, что нужно экономить 1 байт на данных
Все таки одна массив != одна переменная.
А вообще да - 1 байт врятли спасёт, не стоит заморачиваться с ним.
А что, ещё никто не написал класса, работающего с битовым вектором?
Какие то монстроузные имплементации гуглятся на раз. Упражнение в общем-то для студента, изучающего С++.