@olekturbo: właściwie nie wiadomo co co pytasz. Na ośmiu bitach zmieścisz liczby 0-255 (lub -128-127). Żeby mieć pewność, że liczba nie jest większa nić 255 możesz napisać na przykład liczba &= 0xff czyli inaczej liczba &= 255 Możesz też rzutować na zmienną 8 bitową. Aczkolwiek nie wiem czy o to Ci chodzi.
jak mam:
int liczba = 0;
i chcę żeby mieściła się na 8 bitach to zrobić
liczba<<=7;
czy
liczba<<=8;
wydają mi się bez sensu
A nie jest czasem tak, że na ośmiu bitach można zapisać 256 liczb od 0 do 255?
czyli liczba <<=255 ?
liczba &= 0xff
czyli inaczejliczba &= 255
Możesz też rzutować na zmienną 8 bitową. Aczkolwiek nie wiem czy o to Ci chodzi.Komentarz usunięty przez autora
@olekturbo: mirek wściekły, w #!$%@? agresywny xD
nie spinaj sie tak ziomeczku tylko spróbuj pomyśleć. wytłumaczę ci na przykładzie co robisz a potem mi odpowiesz na pytanie czy to ma sens, zaczynamy:
przykład: masz liczbę równą 42. Czyli:
int liczba = 42;
teraz wykonujemy twoje:
liczba <<= 7;
z wpisu. Wynik takiej operacji to zapisanie jako wartość zmiennej
liczba
wynik operacjix &= 0xFF;
operacja ta wyzeruje wszystkie bity na pozycjach większych niż pozycja ósmego bitu.
operacja przesuwania bitowego w lewo spowoduje, że właśnie przesuniesz bity poza zakres liczby ośmiobitowej.
int liczba : 8;
twoja liczba staje się 8 bitowa