Бит класс ру
Автор Вячеслав Бутусов задал вопрос в разделе Другие языки и технологии
Как создать класс для работы с битовыми строками не более чем из 100 бит? и получил лучший ответ
Ответ от
class BitString
{
unsigned char _data[104/8];
public:
void setBit(unsigned int id, unsigned char value)
{
unsigned char &byte = _data[id / 8];
unsigned char offsetInByte = id % 8;
unsigned char mask = 1 << offsetInByte;
value = (value & 0x01) << offsetInByte;
byte = byte & (mask ^ 0xff) mask & value;
}
unsigned char getBit(unsigned char id)
{
unsigned char &byte = _data[id / 8];
unsigned offset = id % 8;
return (byte >> offset) & 0x01;
}
Вячеслав Бутусов
Ученик
(89)
Спасибо, проверок нет, потому что это задание посвящено виртуальным методам и вот как оно выглядит целиком: Создать класс BitString (Класс для работы с битовыми строками не более чем из 100 бит. Битовая строка должна быть представлена массивом типа unsigned char, каждый элемент которого принимает значение 0 или 1.) и класс String (Класс для работы со строками, аналогичными строками Turbo Pascal (строка представляется как массив 255 байт, длина - в первом байте). Максимальный размер строки должен задаваться.).