Przesunięcie bitowe w lewo i prawo

0

Witam. Mam pewną niejasność z przesunięciem bitowym w lewo i w prawo. (bardziej w lewo). Otóż powiedziane jest, ze przesunięcie bitowe w lewo o x pozycji odpowiada mnożeniu liczby przez 2^x. I dajmy na to przykład: przesunięcie 117<<4 daje nam to co 11716, jednakże 117 możemy zapisać w 7 bitach, natomiast 1872 już nie.
117 << 4 = 01110101 (8 bitach NKB) << 4 = 0111
01010000* = 80 (na 8 bitach). Czy pozostałe bity [najważniejsze / najbardziej z przodu] zostają odcinane [czyli 0111 zostałoby odcięte] czy zostają ? Chodzi mi o przykład, gdy mam liczbę 117 i nie mam narzuconej długości bitowej. To samo z przesunięciem w prawo. Czy najmniej ważne [najbliżej od prawej] zostają odcięte czy też zostają[czyli po prostu dopisujemy zera/jedynki z przodu i otrzymujemy liczbę z powiększonym rejestem bitowym z no 8 bitów do 10)

0

Zawsze jest narzucona długość bitowa. Np poprzez pojemność rejestru w mikroprocesorze. Podczas przesuwania bity, które nie mieszczą się w rejestrze zostają utracone (chyba że będziesz je przesuwał do drugiego rejestru )

0

... lub cykliczne.

0

Czy pozostałe bity [najważniejsze / najbardziej z przodu] zostają odcinane [czyli 0111 zostałoby odcięte] czy zostają ?
Jeżeli operacja byłaby na 8-bitowej zmiennej (albo 8-bitowym rejestrze jeśli mowa o asemblerze) to będą obcięte.
Jeżeli operacja będzie na 16-albo więcej-bitowej liczbie to nie, bo jest jeszcze dużo miejsca.

nie mam narzuconej długości bitowej
Komputery tak nie działają, chociaż matematyka tak działa. Oczywiście nic się nie obcina, jeśli nic cię nie ogranicza.

0

dziękuje wszystkim za odpowiedzi, zaliczyłem na 5 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1