voglio assegnare 4294967295
a una variabile (2^32-1
) È ovvio che non posso farlo con Integer
, e può farlo con Long
.Come uscita il valore assoluto di un numero intero senza segno in Java
Tuttavia, ho notato che Java 8 offre interi non firmati (almeno alcuni metodi).
Qualcuno sa quale sia il metodo, Integer.parseUnsignedInt()
? Quando sono entrata "4294967295"
a questo, e stampare la variabile, dà l'output come -1
(-2
per 4294967294
, -3
per 4294967293
e così via ...)
C'è un modo che io possa ancora avere 4294967295
in una variabile?
Mi manca qualcosa qui?
a=Integer.parseUnsignedInt("4294967295");
System.out.println(a);
Questo dà l'output come -1
ma mi aspettavo 4294967295
.
Mostraci il tuo codice che ha creato il numero senza firma –
Non pensare che un numero decimale pensi ad esso come una serie di bit, stai mettendo un numero senza segno in un tipo firmato, se sai quale sia la rappresentazione bit del numero è quindi sai perché stai ricevendo -2 o qualsiasi altra cosa, quindi analizzalo come non firmato per ottenere il decimale che ti aspetti – Neilos