Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Proszę o pomoc przy ATMEGA32
3Z6AEF Offline
Waldek
***

Liczba postów: 237
Dołączył: 27-06-2009
Post: #26
RE: Proszę o pomoc przy ATMEGA32
(07-09-2011 23: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'...
(Ten post był ostatnio modyfikowany: 08-09-2011 9:16 przez 3Z6AEF.)
08-09-2011 9:10
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Proszę o pomoc przy ATMEGA32 - 3Z6AEF - 08-09-2011 9:10

Skocz do:


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