PDA

Просмотр полной версии : Поразрядные опрераторы


Dvaman
03.10.2005, 15:50
Кто-нибудь пользуется поразрядными операторами и какую идею с помомощью их можно реализовать?

iNils
03.10.2005, 16:20
Например тебе надо умножить 5 на 4, а использовать знак * лень, тогда пишешь
x = 5;
trace (x << 2);
:)

Dvaman
03.10.2005, 17:42
читая хелп так не понял что куда сдвигается.
Почему получается 20? чего-то не въехал

iNils
03.10.2005, 17:46
5 -> 101

сдвиг на 1 бит : x << 1
10 -> 1010

сдвиг на 2 бита : x << 2
20 -> 10100

Dvaman
03.10.2005, 17:49
вроде как 5 в бинаре 101
сдвигаем влево на два 10100
преводим в Dec = 20

и где мне можно будет это применить?

Dvaman
03.10.2005, 17:51
во опередили :)

iNils
03.10.2005, 18:06
r = 0xff;
g = 0xff;
b = 0xff;
// первый вариант (вроде как память экономит, не проверял справедливость)
clr = (r << 16) | (g << 8) | b;
trace (clr);
// второй вариант
clr = r * 256 * 256 + g * 256 + b;
trace (clr);