Koleżankom i Kolegom Radioamatorom, Krótkofalowcom,
Konstruktorom i Waszym Rodzinom – w tych trudnych czasach –
po dotkliwej awarii naszego forum
Pogodnego czasu po Bożym Narodzeniu,
Dosiego Nowego Roku
oraz Radosnych Trzech Króli

Życzy Zespół Home Made

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'...
Odpowiedz


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