qwertylol писал(а):Source of the post
Я тут увидел у вас задачку по, не побоюсь этого слова, программированию. Вот тоже решил запостить довольно интересную, на мой взгляд, задачку. Цель- опитмизировать код, т.e. сделать его как можно меньше, но чтобы он не потерял в функциональности.Код: Выбрать все
if(!(A<=0) && !(B>=0))
n=A-((A>>6)<<6);
else if(!A && B!=0)
n=(5*A*B)%4;
else
n=A&0x3f;
Эта задачка из одной не очень известной книги. Сам я этот примерчик решить не смог и даже после того, как посмотрел правильный ответ, несколько минут сидел c листком и ручкой не веря в то, что так очевидно :yes: .
Код: Выбрать все
if(!(A<=0) && !(B>=0)) // A>0
n=A-((A>>6)<<6); // Это по сути выделение младших 6 бит. Объяснения требуются, или сами :)?
else if(!A && B!=0)// !A всё рвно что A==0
n=(5*A*B)%4; //n=0
else
n=A&0x3f; // Выделение младших 6 бит.
итого
Код: Выбрать все
if(!A && B!=0)
n=0
else
n=A&0x3f;
Верно? :rolleyes: