Maison  >  Article  >  Java  >  qu'est-ce que Java int

qu'est-ce que Java int

silencement
silencementoriginal
2019-05-30 09:20:106725parcourir

qu'est-ce que Java int

En Java, int est représenté par 32 bits et long est représenté par 64 bits. Ces deux types de base sont des entiers et n'ont pas d'autres méthodes de représentation. Comment s’expriment-ils en interne ? Il est représenté par le code complément à deux. Étant donné que nous rencontrons souvent les opérations sur bits de Java lors de la résolution de problèmes, les opérations sur bits de Java ne peuvent être utilisées que pour les types int et long. Nous avons donc des raisons d'analyser comment Java est représenté en interne par le binaire. Ici, nous ne prenons int qu'à titre d'exemple, long c'est pareil.

1. La plage de int

int est représentée par 32 bits en interne en Java, et le bit le plus élevé représente le symbole, donc le nombre qui peut réellement être représenté. est de 31 bits. La plage de valeurs du type int de Java est -2^31~2^31-1.

Pourquoi la plage est-elle comme celle-ci ? Cela implique la méthode de stockage binaire.

En Java, le complément à deux est utilisé pour stocker des int. Pour un nombre positif, son complément est lui-même. Par exemple, prenons 4 bits comme exemple. Pour les nombres positifs 1 à 7, ils sont respectivement 0001,0010. . . , 0111, un total de 7 chiffres, soit 2 ^ 3-1.

Pour 0, vous pouvez voir que le problème arrive. Cela peut être -0 ou +0, les deux valent 0. Décider comment représenter 0 ? La loi des codes complémentaires stipule que 0 est considéré comme +0, donc 0 est représenté par 0000.

A ce moment, il est nécessaire d'exprimer des nombres négatifs. Nous pensons que la représentation complémentaire d’un nombre négatif est l’inversion de sa valeur absolue (inversée avec le bit de signe) plus 1. Par exemple, pour -5, sa valeur absolue est 5, qui est exprimée par 0101. Si elle est inversée, elle est 1010 et plus un est 1011. C'est la représentation complémentaire de -5.

À l'heure actuelle, 1000 peut être utilisé pour représenter -8, donc la plage de nombres négatifs est -2 ^ 31, ce qui explique également la plage de valeurs de int. La même chose est vraie pour une longueur de 64 bits.

2. Les opérations sur les bits de Java

Comment les opérations sur les bits de Java sont-elles effectuées ? N'oubliez pas qu'une opération de décalage déplace le nombre entier vers la gauche ou la droite dans son ensemble. S'il est décalé vers la gauche, le bit faible est rempli par 0. S'il est déplacé vers la droite, il y a deux situations. S'il s'agit de 0 et d'un nombre positif, les bits hauts sont remplis par 0. S'il s'agit d'un nombre négatif, le bit haut est rempli par 1. Par exemple, -5 équivaut à 1011, et un déplacement d'une position vers la droite équivaut à 1101, soit -3.

Il y a aussi une petite opération. S'il s'agit d'une opération au niveau du bit, rappelez-vous que le bit de signe doit également être impliqué !

3. La relation entre le décalage à droite et la division

Pour les nombres positifs (bien sûr 0 aussi), le déplacement d'une position vers la droite est égal au résultat de la division par 2, mais pas pour les nombres négatifs (le résultat de la division par 2 -1 pour être exact) ! Par exemple, -5/2 donne -2 et -5>>1 donne -3.

4. La relation entre les signes positifs et négatifs et les opérations de division entière et de reste

Nombres positifs/nombres positifs, arrondis à l'inférieur

Nombres négatifs/ Les nombres négatifs sont égaux à diviser leurs valeurs absolues

Les nombres positifs/nombres négatifs et les nombres négatifs/nombres positifs sont égaux à diviser leurs valeurs absolues multipliées par le signe négatif.

Quant au résultat en %, la valeur absolue du résultat est la même que le module de leur valeur absolue, mais le signe est déterminé par le premier nombre.

5. Pourquoi devons-nous utiliser du code complémentaire ?

(1) Comme mentionné précédemment, afin d'exprimer raisonnablement +0 et -0

(2) Vous pouvez exprimer un nombre négatif supplémentaire à un nombre négatif

(3) En utilisant le code complémentaire, le bit de signe et les autres bits peuvent être traités uniformément en même temps, la soustraction peut également être traitée comme une addition. De plus, lorsque deux nombres exprimés en complément à deux sont ajoutés, s'il y a une retenue dans le bit le plus élevé (bit de signe), la retenue est rejetée.

En fait, une des principales raisons est de faciliter le calcul des additions et des soustractions. Lors de l'utilisation du système de complément à deux pour les opérations, les bits de signe peuvent être additionnés pour l'opération. Dans les opérations sur bits, s'il y a une retenue dans le bit de signe, elle peut être ignorée car elle a dépassé la plage de bits. Il n'y a rien de spécial dans les nombres positifs et leur addition. Les exemples ci-dessous sont tous en 8 bits. Par exemple, pour 7+7, soit 00000111+00000111, le résultat est 00001110, soit 14.

Pour la soustraction, par exemple, 9-4, nous pensons que c'est 9+(-4). Tout d'abord, inversez 4, qui vaut 00000100, et ajoutez un pour obtenir le complément de -4, qui représente 11111100. , puis ajoutez-le, c'est-à-dire

+00001001(9)

+11111100(-4)

100000101

Carry 1 ? du dernier bit de signe, car il a dépassé la plage de bits, il est directement rejeté et 5 peut être obtenu directement. C'est donc la réalisation de la soustraction qui se transforme en addition.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn