problema con unsigned long

Salve a tutti
questo è il mio primo messaggio sul forum quindi spero di essere nella sezione corretta...
Sto progettando un innaffiatore e mi sono imbattuta in un errore che non comprendo.
voglio tradurre l'ora corrente in secondi(come suggerito qui nel forum)
secondo la formula (ore3600 + minuti60 + secondi)
alle ore 23.00 per esempio = 82800 secondi
ho scritto(semplificando.....)

 unsigned long k;
void setup() {
  // put your setup code here, to run once:

Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
k = (23*3600);
Serial.println(k);
}

dalla seriale pero esce il numero 17264

qualcuno sa dirmi perchè?

ciao...dopo il 23 e dopo il 3600 aggiungi "ul"...cioè falli diventare 23ul ed 3600ul.

questo perchè il compilatore NON sa che tu vuoi calcolare una long, cioè 32 bit, quindi le literals le considera come delle int, 16 bit, con i loro "limiti" di capacità...
persaperne un po' di più leggi QUA

ho provato.. hai ragione, funziona :smiley: grazie mille