To forum używa plików cookies
To forum wykorzystuje pliki cookies do przechowywania informacji o Twoim logowaniu, jeśli jesteś zarejestrowany, oraz informacji o Twojej ostatniej wizycie, jeśli nie jesteś zalogowany. Pliki cookies to niewielkie pliki tekstowe zapisywane na Twoim komputerze; cookies ustawiane przez to forum mogą być używane wyłącznie na tej stronie i nie stanowią zagrożenia dla bezpieczeństwa. Cookies na tym forum śledzą również, które tematy zostały przez Ciebie przeczytane oraz kiedy miało to miejsce. Prosimy o potwierdzenie, czy akceptujesz, czy odrzucasz zapisywanie tych plików cookies.

Niezależnie od wyboru w Twojej przeglądarce zostanie zapisany plik cookie, aby zapobiec ponownemu zadawaniu tego pytania. W każdej chwili będziesz mógł zmienić ustawienia cookies, korzystając z linku w stopce strony.

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Proszę o pomoc przy ATMEGA32
#26
(07-09-2011, 22:48)sp4ejt napisał(a): [...]Mam liczbę 456780, jakiej użyć funkcji/procedury aby otrzymać np. cyfrę określającą ilość setek (czyli 7 w tym przypadku) ??? mowa o języku C.[...]
Odpowiednikami operandów '\' i 'Mod' z BASCOM-a są w języku C operandy '/' (dzielenie całkowitoliczbowe) i '%' (reszta z dzielenia).
Używając ich po kolei z czynnikiem 10 można 'wydzielić' kolejne cyfry (najprościej kolejno, można zastosować pętlę, a 'twardziele' używają rekursji Wink ).
Inna metoda, ale to w systemach, gdzie jest biblioteka z funkcją sprintf(), można to też zrobić tak:
Kod:
char tab[6];
unsigned long moja_liczba = 456780;
unsigned char cyfra_setek;

sprintf(tab, "%06d", moja_liczba);
cyfra_setek = tab[3] - '0';

Aha, zamiast sprintf() można też użyć funkcji itoa() (integer to ascii) - na pewno mniej 'waży'...
Cytuj


Wiadomości w tym wątku
Proszę o pomoc przy ATMEGA32 - przez SP4EJT - 27-08-2011, 18:11

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości