Java bietet auch einen Byte-Datentyp, bei dem es sich um einen Basistyp handelt. Das Java-Byte wird als kleinste Zahl verarbeitet, daher ist sein Wertebereich als -128~127 definiert, was ein vorzeichenbehaftetes Byte ist. Der folgende Artikel führt Sie hauptsächlich in die relevanten Informationen zum Bytetyp in Java ein. Freunde, die es benötigen, können darauf zurückgreifen.
[Empfohlenes Lernen: Java-Video-Tutorial]
Einführung
Byte, das heißt Byte, besteht aus 8-Bit-Binärdaten. In Java sind Daten vom Bytetyp eine 8-Bit-Binärzahl mit Vorzeichen.
In Computern beträgt der Wertebereich von 8-Bit-Binärzahlen mit Vorzeichen [-128, 127], in Java beträgt der Wertebereich des Bytetyps also auch [-128, 127].
Wertebereichsanalyse
Ich habe mich gefragt, warum es nicht -128 bis 128 ist? Ich habe dieses Problem heute analysiert.
Zuerst müssen wir eines verstehen, nämlich die Operationsregeln:
Das höchste Bit einer positiven Zahl ist 0 und der Wert einer positiven Zahl ist der durch Binär dargestellte Wert.
Das höchste Bit einer negativen Zahl ist 1. Der Wert einer negativen Zahl wird invertiert, plus eins, und dann wird ein negatives Vorzeichen hinzugefügt, um den Wert zu erhalten.
Wir verwenden eine 8-Bit-Binärdatei, um diese Regel zu veranschaulichen:
Zum Beispiel: 00000001. Wenn das höchste Bit 0 ist, ist es eine positive Zahl, also stellt es dezimal 1 dar.
Ein weiteres Beispiel: 10000001. Das höchste Bit ist 1 und es ist eine negative Zahl. Was ist der Wert? Negieren Sie es, um 01111110 zu erhalten, und addieren Sie 1, um 01111111 zu erhalten. Dann ist der Wert -127
Nachdem wir diese Operationsregel verstanden haben, sprechen wir offiziell über Byte, bei dem es sich genau um eine 8-Bit-Binärzahl handelt. short ist 16 Bit, int ist 32 Bit, long ist 64 Bit.
Es ist nicht schwer zu verstehen, dass die maximale positive Anzahl von Bytes 01111111 beträgt (das höchste Bit muss 0 sein), also 127.
Dann denken Sie vielleicht, dass die kleinste negative Bytezahl 11111111 ist, oder? So zu denken ist
ein großer Fehler. Mal sehen, was die Binärzahl 11111111 darstellt.
Laut obigem Tipp wissen wir, dass es sich hierbei um eine negative Zahl handelt. Sein Wert wird zuerst negiert und dann 1 hinzugefügt.
11111111 wird invertiert, um zu erhalten: 00000000, addieren Sie 1, um 00000001 zu erhalten. Der erhaltene Endwert ist -1.
Dies ist die größte negative Zahl. Haben Sie jemals gedacht, dass die kleinste negative Zahl 10.000.000 wäre?
Lassen Sie uns rechnen und negieren: 01111111, addieren Sie 1, um 10000000 zu erhalten, und erhalten Sie schließlich -128.
127 ist 01111111, aber -128 ist 10000000, und wir sehen etwas Seltsames.
Schauen Sie sich diese beiden Binärzahlen genau an. Erhalten Sie die letztere, indem Sie 1 zur ersteren addieren? Rechts.
Sie können zum Experimentieren ein kleines Programm schreiben:
byte a = 127; a+=1; System.out.println(a);
Das Ergebnis ist genau -128
Daran können wir erkennen, dass die Binärzahl von 00000000 über 01111111 bis 10000000 reicht bis 11111111
Das heißt, die Dezimalzahl reicht von 0 bis 127 bis -128 bis -1.
Als nächstes verwenden wir einen Code, um Byte besser zu verstehen:
public class A { public static void main(String[] args) { int b = 456; byte test = (byte) b; System.out.println(test); } }
Der obige Code gibt schließlich -56 aus. Der Grund ist wie folgt:
Die binäre Darstellung von 456 ist 111001000. Da int eine 32-Bit-Binärdatei ist, ist es im Computer tatsächlich 00000000000...111001000 Der Computer speichert nur die letzten 8 Ziffern: 11001000.
Dann ist das höchste Bit von 11001000 1, was bedeutet, dass es eine negative Zahl ist, und negative Zahlen werden in Computern im Zweierkomplementformat gespeichert, sodass wir berechnen, dass der ursprüngliche Code von 11001000 00111000 ist, also 56 , also 11001000 Es stellt -56 dar, sodass der endgültige Testwert -56 ist.
Dieser Artikel stammt aus der Rubrik Java-Einführung, willkommen zum Lernen!
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Bytetyp in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!