Qualcuno mi sa dire precisamente in cosa consiste il sistema BCD (Binary-Coded-Decimal)?

di il
21 risposte

21 Risposte - Pagina 2

  • Re: Qualcuno mi sa dire precisamente in cosa consiste il sistema BCD (Binary-Coded-Decimal)?

    dvaosta ha scritto:


    +m+ ha scritto:


    Ovviamente ti servirà "qualcosa" per fare le moltiplicazioni
    Servirebbe qualcosa per fare moltiplicazioni in base 10, peccato che l'hardware lavori in base 2. quindi se tu hai, ad esempio, 1.7, dovresti riuscire a trasformarlo in 17 prima che venga trasformato in binario. Inoltre, per mostrare di nuovo all'utente 1.7, dovresti ridividere 17 sempre in base 10.
    Certamento, ecco il soccorso della euroarrotonda() con la quale ad esempio 17,12 * 0,22 = 3,77

    EDIT: ho dato per scontato, o meglio non l'ho chiarito bene, che se è sufficiente l'arrotondamento euro, cioè i 2 decimali per capirci, ALLORA si possono usare benissimo direttamente double mantenendoci dentro i valori, quindi a virgola mobile e non a virgola fissa, ed usando la euroarrotonda().
    Questo è comodo, in concreto, per non dover "litigare" con i generatori di report.

    Nel caso in cui invece servano più decimali, e quindi ci siano problemi effettivi di stabilità numerica, ALLORA normalmente si passa alla configurazione a virgola fissa memorizzata sui float (sempre double in realtà) o long long, ed un euroarrotonda() evoluta (e lenta, e scomoda)
  • Re: Qualcuno mi sa dire precisamente in cosa consiste il sistema BCD (Binary-Coded-Decimal)?

    dvaosta ha scritto:


    La bibliografia citata ammette comunque che alcuni numeri decimali che hanno lunghezza finita in base 10 non possono essere rappresentati correttamente in base 2 usando i floating point, per cui non capisco il punto.
    Il punto è che la rappresentazione floating point binaria fa acqua da tutte le parti (si usa un insieme di valori finito e con densità disomogenea per tentare malamente di mappare gli Aleph-1 valori del continuo, dunque ovviamente occorrono alcuni "trucchi" e parecchi compromessi), ma numeri decimali a lunghezza finita prefissata possono sempre essere rappresentati (anche in binario!) con precisione arbitrariamente grande usando semplicemente valori interi, eventualmente aggregati, con una implicita moltiplicazione per una potenza intera segnata del dieci, ossia uno "spostamento della virgola". Tale formato prende appunto il nome di fixed point, o scaling, come ripetuto più volte.

    Inoltre, sempre usando solo rigorosamente interi di dimensione gestibile da un registro di una qualsiasi CPU mainstream, è possibile altresì usare i razionali, ossia coppie di interi che rappresentano dividendo e divisore. Esistono (rari) formati specifici di packing anche per i razionali, ma in genere le soluzioni più cheap che non prevedono il ricorso ad apposite librerie consistono nell'intuitivo uso di una struttura contenente due interi a 32 o 64 bit (esattamente come per il calcolo sui numeri complessi, ancora più raro da trovare implementato in hardware rispetto all'IEEE 854), o nel convenzionale ricorso alla "normalizzazione" ad una frazione con numeratore unitario (frazione egizia e relativa aritmetica), che viene ovviamente omesso usando in ultima analisi un solo intero (esteso, se del caso) che indica solo il divisore o denominatore.


    Ritengo comunque che l'OT sul FP e i suoi limiti si sia prolungato a sufficienza: se desideri aprire una nuova discussione per approfondire ulteriormente le questioni di rappresentabilità e stabilità numerica nei due standard FP e nelle varie basi numeriche (importantissimo il testo di Higham segnalato in bibliografia), sei il benvenuto.
  • Re: Qualcuno mi sa dire precisamente in cosa consiste il sistema BCD (Binary-Coded-Decimal)?

    M.A.W. 1968 ha scritto:


    Il punto è che la rappresentazione floating point binaria fa acqua da tutte le parti (si usa un insieme di valori finito e con densità disomogenea per tentare malamente di mappare gli Aleph-1 valori del continuo, dunque ovviamente occorrono alcuni "trucchi" e parecchi compromessi), ma numeri decimali a lunghezza finita prefissata possono sempre essere rappresentati (anche in binario!) con precisione arbitrariamente grande usando semplicemente valori interi, eventualmente aggregati, con una implicita moltiplicazione per una potenza intera segnata del dieci, ossia uno "spostamento della virgola". Tale formato prende appunto il nome di fixed point, o scaling, come ripetuto più volte.
    Ok, ora ci siamo capiti.
  • Re: Qualcuno mi sa dire precisamente in cosa consiste il sistema BCD (Binary-Coded-Decimal)?

    Aggiungo che l'utilizzo è pressochè sparito, a parte nicchie varie,
    La "notazione BCD" viene usata spesso nelle applicazioni di automazione industriale poichè permette di gestire in modo migliore la mascheratura dei singoli bit, per es. in una word o in una long.
    Per lo stesso motivo è usata anche da alcuni trasduttori digitali.
    Ciao
  • Re: Qualcuno mi sa dire precisamente in cosa consiste il sistema BCD (Binary-Coded-Decimal)?

    Lucios ha scritto:


    La "notazione BCD" viene usata spesso nelle applicazioni di automazione industriale poichè permette di gestire in modo migliore la mascheratura dei singoli bit, per es. in una word o in una long.
    Per lo stesso motivo è usata anche da alcuni trasduttori digitali.
    ...il che era già stato adeguatamente precisato ed esemplificato in questo post, e ribadito in chiusura di questo, che evidentemente ti sono sfuggiti durante la lettura del thread.
  • Re: Qualcuno mi sa dire precisamente in cosa consiste il sistema BCD (Binary-Coded-Decimal)?

    ...il che era già stato adeguatamente precisato ed esemplificato in questo post, e ribadito in chiusura di questo
    Mah, veramente si è parlato genericamente dello standard ANSI/IEEE 854, calcoli finanziari (e sistemi embedded in modo generico).
    BCD è per natura un classico formato intermedio, usato non solo per effettuare direttamente operazioni aritmetiche (sia in hardware, sia tramite firmware o microcodice
    Se intendi questo hai ragione ma io volevo semplicemente precisare in parole semplici che, in ambito industriale, la notazione BCD è comoda ad es. per individuare informazioni su bit tramite mascherature (OR, AND, XOR e compagnia briscola).
  • Re: Qualcuno mi sa dire precisamente in cosa consiste il sistema BCD (Binary-Coded-Decimal)?

    Naturalmente, capisco la tua buona intenzione. Come moderatore mi preoccupa solo il fatto che alla seconda paginata di thread l'OP non si sia ancora fatto vivo, se non altro per ringraziare: non vorrei che l'avessimo "perso" per strada, come purtroppo spesso succede ultimamente.
Devi accedere o registrarti per scrivere nel forum
21 risposte