Mit char als unsigned 16-bit-Wert in Java?
Brauche ich eine vorzeichenlose 8-bit-integer in Java und char zu sein scheint das einzige in der Nähe. Es ist zwar doppelt so groß, es ist unsigniert, das macht es praktisch für das, was ich will, es zu benutzen für (schreiben Sie ein basic-emulator erfordert, unsigned bytes). Das problem ist, dass ich gehört habe, andere Programmierer sagen, dass sollte man nicht verwenden char in dieser Art und Weise und sollte nur mit int oder so. Ist das wahr, und warum ist das so?
InformationsquelleAutor ZimZim | 2013-05-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine nicht signierte 8-bit-integer verwenden Sie dann
byte
. Es ist einfach zu machen, unsigned in arithemtic Operationen (wo eigentlich Unterschreiben Angelegenheiten) alsbyteValue & 0xFF
Wenn Sie brauchen, Effizienz, es ist eine schlechte Idee, wenn die Effizienz nicht ein Thema, dann UnsignedByte Klasse statt java.lang.Byte ist eine gute Idee
InformationsquelleAutor Evgeniy Dorofeev
In Java:
lange: [-2^63 , 2^63 - 1]
int: [-2^31 , 2^31 - 1]
kurz: [-2^15 , 2^15 - 1]
byte: [-2^7 , 2^7 - 1]
char: [0 , 2^16 - 1]
Du willst eine vorzeichenlose 8-bit-integer heißt, Sie wollen einen Wert zwischen [0, 2^8 - 1]. Es ist deutlich zu wählen, short/int/long/char.
Obwohl char behandelt werden können als eine Ganzzahl ohne Vorzeichen, ich denke, Es ist ein schlechter coding Stil char für alles aber Zeichen.
Beispielsweise
}
Ist es besser short/int/long mit der Konvertierung.
InformationsquelleAutor Le Wang
Ist es völlig vernünftig zu verwenden
byte
repräsentieren eine vorzeichenlose 8-bit Ganzzahl mit einigen kleinen Umbau, oder Guave'sUnsignedBytes
tun die Konvertierung für Sie.InformationsquelleAutor Wudong