URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3884
[ Назад ]

Исходное сообщение
"<< >>"

Отправлено hook , 31-Янв-05 14:03 
Расскажите плз об этих операциях - << и >>
просто в книжке хреново описано про эти побитовые сдвиги,можете привести реальный пример!!!

Содержание

Сообщения в этом обсуждении
"<< >>"
Отправлено boehkom , 31-Янв-05 14:12 
>Расскажите плз об этих операциях - << и >>
>просто в книжке хреново описано про эти побитовые сдвиги,можете привести реальный пример!!!
>

int t=10;
t <<=1; //получается сдвигаем на разряд влево == умножить на 2 (t==20)
t <<= 8 // умножаем на 256, обнуляем младший байт


"<< >>"
Отправлено hook , 31-Янв-05 16:45 

>int t=10;
>t <<=1; //получается сдвигаем на разряд влево == умножить на 2 (t==20)
>
>t <<= 8 // умножаем на 256, обнуляем младший байт


Пасибо тперь понял!
т.е когда мы делаем <<= то мы умножаем на степень двойки,которая стоит после =
а когда >>= то соответственно делим!
а где еще кроме как с целыми числами это можно применить?


"<< >>"
Отправлено Xenu , 01-Фев-05 05:50 
>а где еще кроме как с целыми числами это можно применить?
как я понимаю из названия этих операций, "битовые", значит и работают с битамм, поэтому не важно, что этими битам представленно int, char или еще что.
имеет ли смысл применять ? это уже другой вопрос :-)

"<< >>"
Отправлено hook , 02-Фев-05 15:11 

>как я понимаю из названия этих операций, "битовые", значит и работают с
>битамм, поэтому не важно, что этими битам представленно int, char или
>еще что.
>имеет ли смысл применять ? это уже другой вопрос :-)
А ну да,теперь вообще почти все понятно...
вот допустим функция проверки чексуммы
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);

return (__u16) ~sum;
что здесь делается?как я понял получается 32 разрядное число?