• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

prosto_lynx

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

Creo

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

prosto_lynx

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

alexsid

юзай
Код:
// 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");
}
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!