Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    22

    [Arduino] Estrarre valori da un array e concatenarli memorizzandoli in una variabile

    Buongiorno,
    ho dei problemi nell'estrarre dei valori da un array int e memorizzarli come un unico numero in una variabile.
    Suggerimenti??
    Grazie

    nello specifico il mio Array è del tipo int decimale[5];
    se ad esempio lo popolassi con {1,2,3,4,5} vorrei ottenere una variabile che contenga: 12345
    Ultima modifica di jamal87; 29-04-2014 a 16:52

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    E il linguaggio? Se parli di C, come è fatto l'array e i valori sono decimali o codificati ASCII?

    Se non sprechi qualche riga in più per le spiegazioni, diventa difficile darti un suggerimento ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    22
    Si è in C...I valori sono decimali e l'array è un array di int di grandezza 5
    il contenuto è proprio [1,2,3,4,5]

  4. #4
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao,
    forse è un po' overshooting, però si può fare qualcosa come questo:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main()
    {
        int array[5] = {1, 2, 3, 4, 5};
        int i;
        char stringa[5];
    
    
        for(i=0; i<5; ++i)
        {
            /* scrivo ogni numero come carattere nella stringa */
            itoa(array[i], &stringa[i], 10);
        }
    
    
        printf("%s\n", stringa);
        int concatenato;
        /* trasformo la stringa "12345" nel numero 12345 */
        concatenato = atoi(stringa);
        printf("%d\n", concatenato);
    
    
        return 0;
    }


    Altrimenti puoi assegnare un peso (decine, centinaia, ecc.) ad ogni elemento dell'array di interi e poi sommare tutto. Forse sarebbe anche più sensato...



  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Azzera la variabile e utilizza un ciclo per prendere i valori uno per uno moltiplicandoli per 10 e sommandoli.

    Ovvero

    0 * 10 + 1
    1 * 10 + 2
    12 * 10 + 3
    ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Vedo che io e oregon siamo sincronizzati!
    Però il premio per la soluzione più assurda l'ho vinto io con la stringa...

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Io penso che bisogna dare la "strada" non tutta una "soluzione con codice pronto" ...

    E scusami, ma sono per le soluzioni più "classiche" ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Va beh, allora per fortuna che il codice pronto era scadente!

    @jamal87: segui l'altro consiglio: pesa i vari elementi e sommali.


  9. #9
    Ocio però che su Arduino int è a 16 bit, per cui puoi arrivare al massimo a 32767, per non avere problemi per la variabile in cui "costruisci" il numero finale usa un long (32 bit su Arduino).
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    22
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    Ocio però che su Arduino int è a 16 bit, per cui puoi arrivare al massimo a 32767, per non avere problemi per la variabile in cui "costruisci" il numero finale usa un long (32 bit su Arduino).

    Grazie a mille a tutti; risolto.
    Grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.