Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 1 gru 2024, o 22:01


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 28 lis 2024, o 21:53 
Offline
Nowy

Dołączył(a): 28 lis 2024
Posty: 2
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2024, o 08:50 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2587
Pomógł: 128

Bitowe czy bajtowe przesunięcie ... :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2024, o 10:22 
Offline
Nowy

Dołączył(a): 28 lis 2024
Posty: 2
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2024, o 10:50 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

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

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2024, o 16:43 
Offline
Nowy

Dołączył(a): 12 lis 2024
Posty: 6
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO