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



Teraz jest 11 lut 2025, o 17:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 21 kwi 2018, o 10:03 
Offline
Użytkownik

Dołączył(a): 06 wrz 2017
Posty: 94
Pomógł: 0

Witam.Mam małą zagwozdkę bo nie wiem jak przerobić kod by działał na bitach 1, 3, 7, 15, 31, 63, 127, 255 po 255 zerowanie i do nowa.Tu w przykładzie bity przesuwam bit po bicie 1,2,3,4,5,6,itd natomiast nie wiem jak zrobić ten drugi efekt.Mogę prosić o podpowiedz.Pozdrawiam.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2018, o 11:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

witam,
albo przesuwaj w lewo maskę na zmiennej z jedynkami,
albo zmienna static i :
przesuwaj w lewo i dodawaj 1 , będzie wypełniało najmłodszy bit.
albo ( licz * 2 + 1),
albo.. :) można się posiłkować sposobem maskowania i przesunięć bitowych, opisanych w BB w rozdziale o buforze cyklicznym.

------------------------ [ Dodano po: 2 minutach ]

no i w kodzie

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

to zero w klamrach niema sensu. ;) wkradł się chochlik.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2018, o 18:09 
Offline
Użytkownik

Dołączył(a): 06 wrz 2017
Posty: 94
Pomógł: 0

Zastosuje licz*2+1.ŁATWIEJ.
A jak przesuwać w lewo maske na zmiennej z jedynkami.Możesz pokazać.Na pewno z or.co?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2018, o 21:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

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

ale, ponieważ używasz wszystkie piny portu, to tak chyba będzie prościej.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2018, o 09:59 
Offline
Użytkownik

Dołączył(a): 06 wrz 2017
Posty: 94
Pomógł: 0

Działa tak bez +1 nie wiem dla czego.

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


Twój sposób jest zdecydowanie lepszy.Zrobiłem tak ;

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

A to ~(uint8_t) (255 >> licz) to chyba Mirek w którymś poradniku wspominał.Rzutowanie.Gdzie poczytam o tym?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2018, o 10:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1033
Lokalizacja: Trójmiasto
Pomógł: 190

W BB rozdział "Operatory rzutowania"

------------------------ [ Dodano po: 1 minucie ]

A także tu http://atnel.pl/domyslna-promocja-do-typu-int.html


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2018, o 10:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

wrctomi napisał(a):
Działa tak bez +1 nie wiem dla czego.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wrctomi napisał(a):
A to ~(uint8_t) (255 >> licz)

wpisałem tak, ponieważ nie zauważyłem w Twoim kodzie, jakiego typu jest powołana zmienna 'licz'.
a na temat domyślnych promocji do int'a poczytasz tu:
_PROMOCJA_
o... kolega już odpisał. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2018, o 14:28 
Offline
Użytkownik

Dołączył(a): 06 wrz 2017
Posty: 94
Pomógł: 0

Dziękuje Wam za wyjaśnienie.Pozdrawiam.



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: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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