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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 3 maja 2025, o 23:35


    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: 2595
    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: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 15
    Pomógł: 1

    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ł: Google [Bot] i 11 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO