Java fournit également un type de données octet, qui est un type de base. L'octet Java est traité comme le plus petit nombre, sa plage de valeurs est donc définie comme -128~127, qui est l'octet signé. L'article suivant vous présente principalement les informations pertinentes sur le type d'octet en Java. Les amis dans le besoin peuvent s'y référer.
[Apprentissage recommandé : Tutoriel vidéo Java]
Introduction
l'octet, c'est-à-dire l'octet, est constitué d'un binaire de 8 bits. En Java, les données de type octet sont un nombre binaire signé de 8 bits.
Dans les ordinateurs, la plage de valeurs des nombres binaires signés 8 bits est [-128, 127], donc en Java, la plage de valeurs du type d'octet est également [-128, 127].
Analyse de la plage de valeurs
Je me demande pourquoi ce n'est pas -128 à 128 ? J'ai analysé cette question aujourd'hui.
Tout d'abord, nous devons comprendre une chose, c'est-à-dire les règles de fonctionnement :
Le bit le plus élevé d'un nombre positif est 0, et la valeur d'un nombre positif est la valeur exprimée en binaire.
Le bit le plus élevé d'un nombre négatif est 1. La valeur d'un nombre négatif est inversée, plus un, puis un signe négatif est ajouté pour obtenir la valeur.
Nous utilisons du binaire 8 bits pour illustrer cette règle :
Par exemple : 00000001. Si le bit le plus élevé est 0, c'est un nombre positif, il représente donc 1 en décimal.
Autre exemple : 10000001. Le bit le plus élevé est 1 et c'est un nombre négatif. Quelle est la valeur ? Annulez-le pour obtenir 01111110 et ajoutez 1 pour obtenir 01111111, alors la valeur est -127
Comprenant cette règle de fonctionnement, nous commençons officiellement à parler d'octet, qui est exactement un nombre binaire de 8 bits. short est de 16 bits, int est de 32 bits, long est de 64 bits.
Il n'est pas difficile de comprendre que le nombre maximum d'octets positifs est 01111111 (le bit le plus élevé doit être 0), soit 127.
Alors vous pensez peut-être que le plus petit nombre négatif d'octets est 11111111, n'est-ce pas ? Penser ainsi est
une grosse erreur. Voyons ce que représente le nombre binaire 11111111.
D'après le conseil ci-dessus, nous savons qu'il s'agit d'un nombre négatif. Sa valeur est d'abord annulée, puis 1 est ajouté.
11111111 est inversé pour obtenir : 00000000, ajoutez 1 pour obtenir 00000001. La valeur finale obtenue est -1.
C'est le plus grand nombre négatif. À partir de là, avez-vous déjà pensé que le plus petit nombre négatif serait 10 000 000 ?
Faisons le calcul et annulons : 01111111, ajoutons 1 pour obtenir 10000000, et enfin obtenons -128.
127 est 01111111, mais -128 est 10000000, et nous voyons une chose étrange.
Regardez attentivement ces deux nombres binaires Obtenez-vous le dernier en ajoutant 1 au premier ? droite.
Vous pouvez écrire un petit programme pour expérimenter :
byte a = 127; a+=1; System.out.println(a);
Le résultat est exactement -128
De là, nous pouvons voir que le nombre binaire va de 00000000 à 01111111 à 10000000 à 11111111
C'est-à-dire que le nombre décimal va de 0 à 127 à -128 à -1.
Ensuite, nous utilisons un morceau de code pour comprendre l'octet plus en profondeur :
public class A { public static void main(String[] args) { int b = 456; byte test = (byte) b; System.out.println(test); } }
Le code ci-dessus affichera finalement -56. La raison est la suivante :
La représentation binaire de 456 est 111001000. Puisque int est un binaire de 32 bits, dans l'ordinateur, il s'agit en fait de 00000000000...111001000. Lorsque int est converti en octet, le. l'ordinateur ne conservera que les 8 derniers chiffres sont 11001000.
Ensuite, le bit le plus élevé de 11001000 est 1, ce qui signifie que c'est un nombre négatif, et les nombres négatifs sont stockés sous forme de complément à deux dans les ordinateurs, nous calculons donc le code original de 11001000 comme 00111000, soit 56, donc 11001000 Cela représente -56, donc la valeur finale du test est -56.
Cet article provient de la rubrique Introduction Java, bienvenue pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!