Skocz do zawartości

C, strumień <<


Recommended Posts

Napisano

int a = 1, b; b = a<<2; Po tej operacji jaką wartość będzie miała zmienna b? Czy to będzie tak, ze strumień przypisze do zmiennej a liczbę 2 a później nada zmiennej b ta samą wartość jaka ma zmienna a?

Napisano (edytowany)

To operacja przesunięcia w lewo (shift left).

Każdorazowe przesunięcie w lewo o 1 to tak jakbyś mnożył liczbę przez kolejne potęgi liczby 2.

a = b << 1 oznacza a = b * 2^1 czyli a = b * 2

a = b << 2 oznacza a = b * 2^2 czyli a = b * 4

a = b << 3 oznacza a = b * 2^3 czyli a = b * 8

 

 

Edytowano przez Bartosz Wójcik
Napisano

Do szybkiego sprawdzania snippetów polecam Ideone - pozwala na kompilację kodu w językach popularnych,a także tych mniej :)

Twój kod zwrócił 4, ponieważ operator << to nic innego jak bitowe przesunięcie w lewo. Czyli binarnie 001 zostało przesunięte o 2 miejsca w lewo, co w wyniku dało binarnie 100.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...