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) 100000101Carry 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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Dépannage et solutions au logiciel de sécurité de l'entreprise qui fait que certaines applications ne fonctionnent pas correctement. De nombreuses entreprises déploieront des logiciels de sécurité afin d'assurer la sécurité des réseaux internes. ...

Le traitement de la cartographie des champs dans l'amarrage du système rencontre souvent un problème difficile lors de l'exécution d'amarrage du système: comment cartographier efficacement les champs d'interface du système a ...

Lorsque vous utilisez MyBatis-Plus ou d'autres cadres ORM pour les opérations de base de données, il est souvent nécessaire de construire des conditions de requête en fonction du nom d'attribut de la classe d'entité. Si vous manuellement à chaque fois ...

Commencez le printemps à l'aide de la version IntelliJideaultimate ...

Solutions pour convertir les noms en nombres pour implémenter le tri dans de nombreux scénarios d'applications, les utilisateurs peuvent avoir besoin de trier en groupe, en particulier en un ...

Conversion des objets et des tableaux Java: Discussion approfondie des risques et des méthodes correctes de la conversion de type de distribution De nombreux débutants Java rencontreront la conversion d'un objet en un tableau ...

Lorsque vous utilisez TkMyBatis pour les requêtes de base de données, comment obtenir gracieusement les noms de variables de classe d'entité pour créer des conditions de requête est un problème courant. Cet article épinglera ...

Explication détaillée de la conception des tables SKU et SPU sur les plates-formes de commerce électronique Cet article discutera des problèmes de conception de la base de données de SKU et SPU dans les plateformes de commerce électronique, en particulier comment gérer les ventes définies par l'utilisateur ...
