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 ?? 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). 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. 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/ |