/Anonimizzato28093Utente anonimizzato28 mag 2020, 23:50Buonasera a tutti, stavo effettuando delle prove per capire le conversioni che i compilatori fanno implicitamente. volevo convertire float z = -20010.1415 in tipo unsigned short. Nel farlo senza compilatore il mio ragionamento è stato: elimino la parte dopo la virgola perchè lavoro con gli interi e visto che il tipo unsigned short non ammette un valore negativo aggiungo al valore negativo (-20010) il più grande valore rappresentabile in unsigned short aumentato di 1 che dovrebbe essere 65535. RISULTATO = 45526 Ma il compilatore mi riporta 0 come risultato, potete aiutarmi?
/Anonimizzato28093Utente anonimizzato29 mag 2020, 09:05int main (void){ float x = 4e10, y = 32767.8, z = -20010.1415; short a, b, c; unsigned short d; a = y; b = z; c = x; d = z; } Volevo cercare di comprendere le conversioni implicite che effettua il C
OoregonSuper FamosoIscritto danov, 2011Messaggi2191729 mag 2020, 09:16No, come fai a vedere che è 0? E' 45526
/Anonimizzato28093Utente anonimizzato29 mag 2020, 09:23Anche a me torna 45526 ma se metto il codice su compilatore c (clang) mi torna 0. Per la C=x anche mi torna 0 e non riesco a capirne il motivo
OoregonSuper FamosoIscritto danov, 2011Messaggi2191729 mag 2020, 09:42Non ci siamo capiti ... compilando ed eseguendo il risultato è 45526. Tu come controlli da programma che è 0? Nel tuo codice manca un printf ...
OoregonSuper FamosoIscritto danov, 2011Messaggi2191729 mag 2020, 10:17Ok, ma questa restituisce il valore 45526 ... Se non è così per te, mostra TUTTO il codice compresa la printf che non vedo nel tuo e magari indica quale compilatore hai usato e una schermata del programma in esecuzione. Altrimenti perdiamo una giornata a capirci per una cosa banale
OoregonSuper FamosoIscritto danov, 2011Messaggi2191729 mag 2020, 10:36Cambia compilatore. E possibilmente non uno online ...
/Anonimizzato28093Utente anonimizzato29 mag 2020, 10:54oregon ha scritto: Cambia compilatore. E possibilmente non uno online ... Quindi l'errore è del compilatore e non nostro giusto?
OoregonSuper FamosoIscritto danov, 2011Messaggi2191729 mag 2020, 11:05Potresti fare la prova con un altro compilatore e vederlo da sola, no? Prova https://www.onlinegdb.com/online_c_compile o installa un ambiente nel tuo PC