Advertisement
Derik_hacker

Untitled

Apr 4th, 2025
364
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.32 KB | None | 0 0
  1. #include "bcd.h"
  2.  
  3.  
  4. unsigned short bin2bcd(unsigned short val) {
  5.     unsigned short bcd = 0;
  6.     unsigned short posizione = 0;
  7.    
  8.     while (val > 0) {
  9.         unsigned short cifra = val % 10;
  10.         bcd |= (cifra << (posizione * 4));
  11.         val /= 10;
  12.         posizione++;
  13.     }
  14.    
  15.     return bcd;
  16. }
Advertisement
Comments
  • Derik_hacker
    6 days
    # text 0.40 KB | 0 0
    1. Esempi di funzionamento
    2. Esempio 1: val = 127
    3. 127 % 10 = 7, quindi bcd |= (7 << 0) → 0000 0111
    4.  
    5. 12 % 10 = 2, quindi bcd |= (2 << 4) → 0010 0111
    6.  
    7. 1 % 10 = 1, quindi bcd |= (1 << 8) → 0001 0010 0111
    8.  
    9. Risultato finale: 0x0127
    10.  
    11. le << permet de deplacer les chiffres a gauche
    12.  
    13. 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