Prośba o wytłumaczenie krok po kroku jak działają obie funkcje sam próbowałem
z pierwszą ale mi wychodzą jakieś bzdury> bo rozumiem że jak np. wpiszę liczbę 14dziesiętnie to dostanę binarnie odpowiednik tej liczby czyli: 1110 tymczasem mi wyszło binarnie 10100 czyli 20 Coś robię źle ? tylko co
Kod:
// konwersja liczby dziesiętnej na BCD
uint8_t dec2bcd(uint8_t dec) {
return ((dec / 10)<<4) | (dec % 10);
}
Przy okazji poproszę też o wytłumaczenie drugiej funkcji czyli:
Kod:
// konwersja liczby BCD na dziesiętną
uint8_t bcd2dec(uint8_t bcd) {
return ((((bcd) >> 4) & 0x0F) * 10) + ((bcd) & 0x0F);
}