Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "bcd.h"
- unsigned short bin2bcd(unsigned short val) {
- unsigned short bcd = 0;
- unsigned short posizione = 0;
- while (val > 0) {
- unsigned short cifra = val % 10;
- bcd |= (cifra << (posizione * 4));
- val /= 10;
- posizione++;
- }
- return bcd;
- }
Advertisement
Comments
-
- Esempi di funzionamento
- Esempio 1: val = 127
- 127 % 10 = 7, quindi bcd |= (7 << 0) → 0000 0111
- 12 % 10 = 2, quindi bcd |= (2 << 4) → 0010 0111
- 1 % 10 = 1, quindi bcd |= (1 << 8) → 0001 0010 0111
- Risultato finale: 0x0127
- le << permet de deplacer les chiffres a gauche
- le |= permet de d'ajouter de nouvelle valeur à ce qu'on a déjà c'est à dire sans ecraser les anciennes valeurs
Add Comment
Please, Sign In to add comment
Advertisement