Concatenamento variabili INY

buongiorno, ho questa necessità: da 2 variabili int concatenarle in una terza esempio: variabile1 = 123 variabile2 =99 variabile 3=12399 sono un neofita, ho provato varie cose trovate in internet ma sono ancora al punto d'inizio Grazie mille

:warning:
Ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato.
Grazie.

A quanto detto da UKHeliBob aggiungo ...

... cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO della sezione Italiana del forum, (... e, per evitare future possibili discussioni/incomprensioni, prestando sempre molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

P.P.S.: Evitate di utilizzare la traduzione automatica fatta dal browser ... vi impedisce di capire la lingua della sezione dove andate a scrivere ...

mi scuso della mia inettitudine, ho cercato di capire, sono un po' duro, dove fare la mia presentazione ma non ho capito nulla, scusatemi ancora

Devi rispondere nell'apposita discussione:
https://forum.arduino.cc/t/re-presentazioni-nuovi-iscritti-fatevi-conoscere-da-tutti-part-2/1018420/20000

Con l'occasione ti ricordo che, secondo il regolamento, è vietato aprire più discussioni sullo stesso argomento anche in lingue diverse, perché più persone risponderebbero inutilmente senza poter seguire lo svolgimento complessivo della discussione.

Benvenuto, Gabriele!
In realtà, le variabili int sono numeriche, quindi non ha senso "concatenarle"... Che cosa vuoi fare, esattamente?

P.S.: tutti i messaggi possono essere corretti dall'autore, compreso il titolo della discussione.

Parlando di valori interi non esiste il concetto di "concatenazione", ma solo le normali operazioni tra cui la "somma". Partendo da:

int variabile1 = 123;
int variabile2 = 99;
int variabile3 = variabile1 + variabile2;

qui otterrai 123+99 ossia 222.
Se vuoi "concatenare" in quel modo, devi parlare di stringhe quindi le due variabili devi trasformarle in stringa (che in linguaggio C sono "char array") e poi concatenarle, ma è una cosa già un po' più complicata da capire se sei veramente agli inizi. Ad esempio:

  int variabile1 = 123;
  int variabile2 = 99;
  // Stringa dove metto il risultato
  char risultato[10];
  // Concateno i valori come stringhe
  sprintf(risultato, "%d%d", variabile1, variabile2);
  Serial.print(risultato);

Oppure sapendo che "variabile2" è sempre minore di 100, potresti fare:

  int variabile1 = 123;
  int variabile2 = 99;
  int variabile3 = variabile1 * 100 + variabile2;

Dato che in linea di massima non ha grosso senso quello che vorresti fare, prova a spiegare perché hai posto questa domanda...

Ma ti consiglio di iniziare a studiare un po' in generale la programmazione ed il linguaggio C di Arduino in particolare (in rete trovi molti tutorial che partono anche dalle basi).

Una soluzione matematica più generale viene più complessa di sprintf, perché bisogna mettere degli if che controllano il numero di cifre del secondo numero e, in base a ciò, determinano la potenza di dieci per cui moltiplicare il primo numero. Sprintf è sicuramente la soluzione più semplice e con la massima velocità di elaborazione perché non richiede calcoli numerici, ma solo posizionamento di caratteri.

Usando calcoli matematici, devi anche tenere conto della capacità di int (int16_t): da -32768 a +32767, quindi hai a disposizione 4 cifre e 1/3: facendo riferimento al secondo esempio di docdoc, variabile 1 può andare da 0 a 326 (con 327, variabile 2 avrebbe un massimo di 67), mentre variabile 2 da 0 a 99. Usando una variabile uint16_t (da 0 a 65535), invece, variabile 1 può arrivare a 654 e variabile 2 a 99. Con sprintf non hai queste limitazioni.

@lelelor62: Il cross-posting (anche tra lingue diverse) è proibito dal regolamento , quindi, cortesemente, NON aprire nuove discussioni sullo stesso argomento, per di più scrivendo in Italiano nella sezione Internazionale (dove si può scrivere SOLO in inglese).

La tua discussione duplicata è stata cancellata ... mi raccomando per il futuro.

Guglielmo