Dzień dobry jestem laikiem w dziedzinie programowanie poznałem już składnie wielu języków ale nigdy nie mogłem z opisów zrozumieć pojecia bitów w c++ czy php po co stosuje się bity i ich operatory bo z tego co pisze służy to do przesunięcia bitów
$a = 2;
$b = 2
$c = $a<<$b;
i jak wiadomo ten operator zrobi potęgowanie liczby $b i a$
ale własnie dla mnie jest to potęgowanie a wszędzie piszą o tym że to jakieś przesunięcie bitu i ja tego nie rozumiem kompletnie.
Znalazłem przykład gradienta
R, G, B - poszczególne składowe (w zakresie 0 - 255)
value - pełny kolor
**<< **- to w C i PHP operator przesunięcia bitowego w lewo. Pascalowy odpowiednik to shl
| - to w C i PHP operator sumy logicznej (OR). Pascalowy odpowiednik to or
Przykład:
W celu otrzymania gradientu czarny-żółty, mixujemy wzrost liniowy R z takim samym wzrostem G:
for (x = 0; x <= 100; x++)
{
value = (x*255)/100;
PutPixel(x, 0, (value **<< 16**) | (value << 8));
}
no i to funkcja do rysowania linii gradienta kolorów RGB i może mi ktoś wytłumaczyć po co jest ten operator << 8 i << 16
jak to działa dlaczego akurat są takie liczby i po co jaki to ma logiczno matematyczny sens jeśli mamy zakres 0 - 255 kolorów
to po co te przesunięcia jak je rozumiec jak to zwizualizować te przesunięcia bitów bo ja tego nie czaje w ogóle po co je się stosuje dlaczego i jak to mechanicznie działa, może mi ktoś w jasny sposób wytłumaczyć?