- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
char blt=0;
void WriteBit(bool bit)
{
if(BitCount<9)
{
if(bit){blt|=(1<<BitCount);BitCount++;}
if(!bit){blt&=~(1<<BitCount);BitCount++;}
}
else
{
out_file<<blt;
BitCount=0;
blt=0;
}
}
И даже С++ вижу!
out_file<<blt;
void ClassName::WriteBit(bool bit) ???
это что же... такая функция внутри декларации класса сразу выписана?
айайайай, ойойойой... дважды говнокод :)
Непонятно, нах%ра извините за выражение, такие большие функции сразу внутри класса выписывать.
Ну в общем, хозяева-баре, конечно. Но то что обычно декларации идут в хедеры, а уже реализация, собсно в сишники, и почему так делается, надо знать :) И почему маленькие функции сразу при обьявлении класса - нормально, а большие - плохо. И вообще то что изначально функции описанные сразу внутри класса - становились инлайн - никто не помнит уже? ;)
Всегда ваш,
К.О.
Вопрос - какое нах ООП? От того, что Вы начали использовать классы ничего не поменялось. Просто глобальные переменные модуля теперь являются глобальными переменными класса. Те же яйца, только всмятку. Или я неправ?
tim
В blt пишутся биты 0-7, бит номер 8 игнорируется (слишком большой сдвиг), во время бита 9 идёт запись байта и он тоже игнорируется.
Плюс строчка
if(!bit){blt&=~(1<<BitCount);BitCount++; }
ничего не делает ибо там и так 0.
просто видать сам в этом не шарит и он полный ляля)) и все тут...
Налицо явное непонимание конструкций типа "а &= ~(1 << b)". Типа один зазубрил что это выставить бит в ноль, но нихуя не понял как работает, другой списал и буквы переменных моменял. Тьфу ненавижу, иди рисуй или поваром стань, от этого будет больше пользы.
А здесь тебя с такими раскладами забанят по айпишнику. Будешь свои IT-познания показывать во время составления цепочек проксей.
ведь каждый новый байт инициализируется нулем (все биты обнулены), т.е. достаточно просто единички в нужные разряды писать. ну и с пропадением девятых битов уже говорили.