В С++ есть битовые поля.
QUOTE
Элементы структуры или объединения могут быть определены как битовые поля шириной от 1 до 16 бит, знаковые или беззнаковые. Общая форма описания битового поля:
имя_типа имя_поля : ширина;
Допустимые типы битовых полей - int, char, unsigned int, unsigned char. Ширина битового поля - целое число от 0 до 16. Идентификатор поля может быть пропущен, в этом случае заданное число бит размещается в памяти, но будет недоступно. Для знаковых полей старший левый бит интерпретируется как знак. Над элементами битовых полей не может быть выполнена операция взятия адреса &.
Пример:
struct Date
{ unsigned int Day:5;
unsigned int Mon:4;
unsigned int Year:7;} Start ={1,9,98};
Другой вопрос, чё с ними делать.:) Обратиться к ним мне так и не удалось, сколько я ни пыхтел, хотя я далеко не высшая программистская инстанция. Может тебе и удастся.
Да и нужно это было для курсача, так что выход был таким:
CODE
unsigned char* DecToBin(int Dec, int k)
{
unsigned char* res;
res = new unsigned char[k];
for (int i = 0; i < k; i++) res[i] = 0;
int lg;
for (; Dec > 0; )
{
lg = (log(Dec)/log(2) + 0.000001);
res[k - lg - 1] = 1;
Dec -= pow(2,lg);
}
return res;
}