Работа с битами...

  • Автор темы prosto_lynx
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

prosto_lynx

Гость
#1
Народ, нужно работать с символами (char), но побитно, т.е. рассматривать каждый символ как байт и уметь устанавливать его отдельные биты в 0 или 1.
P.S. Еще желательно, что б можно было применять к ним (полностью байтам или отдельным битам) и логические операции.
 
C

Creo

Гость
#2
Не заню ни одной библиотеки для работы с битами на С или Си ++, но точно знаю, если вопользуешься, так называемыми, битовыми операторами будет тебе счастье...
вот к примеру ссылочка битовые операторы
 
P

prosto_lynx

Гость
#4
Не заню ни одной библиотеки для работы с битами на С или Си ++, но точно знаю, если вопользуешься, так называемыми, битовыми операторами будет тебе счастье...
вот к примеру ссылочка битовые операторы
И стало мне счастье!))
Спасибо! Не знал, что к char они применимы! (начинающий я пока...)
 
A

alexsid

Гость
#5
юзай
Код:
// code
typedef union _bbyte {
struct {
unsigned char b0 : 1;
unsigned char b1 : 1;
unsigned char b2 : 1;
unsigned char b3 : 1;
unsigned char b4 : 1;
unsigned char b5 : 1;
unsigned char b6 : 1;
unsigned char b7 : 1;
} bits;
unsigned char byte;

void print(){
std::cout << "Bit fields: "
<< (bits.b7 == 1) << (bits.b6 == 1) 
<< (bits.b5 == 1) << (bits.b4 == 1)
<< (bits.b3 == 1) << (bits.b2 == 1)
<< (bits.b1 == 1) << (bits.b0 == 1) 
<< " " << std::endl;
}
}BitByte;

void main(int argc, char* argv[])
{
BitByte bb;
bb.byte = 7;
bb.print();

std::cout << "setup bit#7 and clear bit#0\n";
bb.bits.b7 = 1;
bb.bits.b0 = 0;	
bb.print();
system("PAUSE");

std::cout << "Print array of bytes {1, 2, 3} \n";
char test[] = { char(1), char(2), char(3) };
BitByte* pbb = (BitByte*)test;
for(int i=0; i < 3; ++i){
pbb[i].print();
}
system("PAUSE");
}
 
Статус
Закрыто для дальнейших ответов.