ATNEL tech-forum
https://forum.atnel.pl/

Przesunięcia bitowe
https://forum.atnel.pl/topic24742.html
Strona 1 z 1

Autor:  Kohones [ 28 lis 2024, o 21:53 ]
Tytuł:  Przesunięcia bitowe

Cześć :)

Panowie co robię, źle że nie mogę przesunąć maski w lewo o dwie pozycje :O czy tak nie można ??

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Chciałbym przesunąć maskę tak, żeby zmienna result wskazywała na element "b" zmiennej val.

Autor:  micky [ 29 lis 2024, o 08:50 ]
Tytuł:  Re: Przesunięcia bitowe

Bitowe czy bajtowe przesunięcie ... :)

Autor:  Kohones [ 29 lis 2024, o 10:22 ]
Tytuł:  Re: Przesunięcia bitowe

No w zasadzie to chciałbym wyjść poza pierwszy bajt. Jak to można zrobić ?

Autor:  mirekk36 [ 29 lis 2024, o 10:50 ]
Tytuł:  Re: Przesunięcia bitowe

Kohones napisał(a):
No w zasadzie to chciałbym wyjść poza pierwszy bajt. Jak to można zrobić ?


A ja mam pytanie, czy gdzieś czytałeś, ćwiczyłeś - dowiadywałeś się dokładnie co to są przesunięcia w C ? i maskowanie? bo niestety zarówno twój sposób opisu problemu czy celu, a tym bardziej kod - pokazują że jakby kompletnie nie wiesz o co chodzi i tak troszkę na ślepo próbujesz trafiać. Broń boże nie piszę tego żeby ci dogryźć, chcę tylko zwrócić uwagę właśnie na problem. I jeśli tu jesteś na tym forum to może jednak masz Bluebooka ? a jeśli tak to czy przeczytałeś dokładnie rozdział o przesunięciach bitowych? Jeśli nie to przeczytaj proszę bo jest to w tej książce wyśmienicie wyjaśnione, ale nawet jeśli początkująca i tego do końca nie zrozumie, to nie ma co się wstydzić można tu spokojnie dopytać po to jest to forum. Tylko że po przeczytaniu tego rozdziału będziesz właśnie już pisał innym językiem - bardziej technicznie i precyzyjnie.

Bo ty piszesz tu że chciałbyś wyjść poza jakiś pierwszy bajt, że chciałbyś przesunąć maskę ??? - to często prawie sprzeczne informacje ...

Spróbuj może napisać co konkretnie chcesz osiągnąć mając dwie zmienne - ale bez tłumaczenia tego na kodzie to będzie można coś doraźnie pomóc

Autor:  Andrzej_Hils [ 29 lis 2024, o 16:43 ]
Tytuł:  Re: Przesunięcia bitowe

Chcesz dostać się do wartości 4-bitowych. Stąd przesunięcia powinny być wykonane także "ze skokiem" 4. Dla ostatniego nibble, będzie to przesunięcie maski 0xf o zero, dla przedostatniego 4 (masz w kodzie w komentarzu to opisane).

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jeśli jednak chcesz dostać się do wartości już nie przesuniętej (w kodzie wyżej, wyniki to: 0x000d lub 0x00c0 lub 0x0b00 lub 0xa000, a chcesz mieć 0x000d, 0x000c, .... ), to operacja będzie nieco inna. Wartość należy przesunąć w prawo o ilość bitów (jak poprzednio nibble to 4 bity), i zamaskować z 0xf.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Warto formatować dane wyprowadzane. W funkcji printf(...), formatowanie oznacza "0x", 0 - uzupełnianie pola zerami, 4 - szerokość pola na 4 znaki, x - wartość wyświetlana hex

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/