Sto cercando di capire la differenza tra alcuni tipi di dati e la conversione.Qual è la differenza tra il casting long.MaxValue in int e il casting float.MaxValue in int?
public static void ExplicitTypeConversion2()
{
long longValue=long.MaxValue;
float floatValue = float.MaxValue;
int integerValue = (int) longValue;
int integerValue2 = (int)floatValue;
Console.WriteLine(integerValue);
Console.WriteLine(integerValue2);
}
Quando eseguo quel blocco di codice, emette:
-1
-2147483648
so che se il valore che si desidera assegnare a un numero intero è più grande di quello intero può mantenere, restituisce il valore minimo di numero intero (-2147483648).
Per quanto ne so, long.MaxValue
è molto più grande del valore massimo di un numero intero, ma se getto long.MaxValue
a int
, restituisce -1.
Qual è la differenza tra questi due casting? Penso che anche il primo supponga di restituire -2147483648 invece di -1.
mi chiedo il contrario .... 'int i = (int) long.MaxValue' riempie' I' con '0xFFFFFFFF' che è '-1', quindi è chiaro per me. Mi chiedo perché 'int i = (int) float.MaxValue' finisca in' int.MinValue' che è '0x80000000'. –