Maison Java javaDidacticiel qu'est-ce que Java int

qu'est-ce que Java int

May 30, 2019 am 09:20 AM

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Le logiciel de sécurité de l'entreprise entraîne-t-il l'exécution de l'application? Comment dépanner et le résoudre? Le logiciel de sécurité de l'entreprise entraîne-t-il l'exécution de l'application? Comment dépanner et le résoudre? Apr 19, 2025 pm 04:51 PM

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. ...

Comment simplifier les problèmes de cartographie des champs dans l'amarrage du système à l'aide de mapstruct? Comment simplifier les problèmes de cartographie des champs dans l'amarrage du système à l'aide de mapstruct? Apr 19, 2025 pm 06:21 PM

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 ...

Comment obtenir élégamment des noms de variables de classe d'entité pour créer des conditions de requête de base de données? Comment obtenir élégamment des noms de variables de classe d'entité pour créer des conditions de requête de base de données? Apr 19, 2025 pm 11:42 PM

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 ...

Comment Intellij Idea identifie-t-elle le numéro de port d'un projet de démarrage de printemps sans publier un journal? Comment Intellij Idea identifie-t-elle le numéro de port d'un projet de démarrage de printemps sans publier un journal? Apr 19, 2025 pm 11:45 PM

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

Comment convertir les noms en nombres pour implémenter le tri et maintenir la cohérence en groupes? Comment convertir les noms en nombres pour implémenter le tri et maintenir la cohérence en groupes? Apr 19, 2025 pm 11:30 PM

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 ...

Comment convertir en toute sécurité les objets Java en tableaux? Comment convertir en toute sécurité les objets Java en tableaux? Apr 19, 2025 pm 11:33 PM

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 ...

Comment obtenir élégamment les conditions de requête de création de nom de variable de classe d'entité lors de l'utilisation de tkmybatis pour la requête de base de données? Comment obtenir élégamment les conditions de requête de création de nom de variable de classe d'entité lors de l'utilisation de tkmybatis pour la requête de base de données? Apr 19, 2025 pm 09:51 PM

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 ...

Plateforme de commerce électronique SKU et conception de la base de données SPU: comment prendre en compte à la fois les attributs définis par l'utilisateur et les produits sans attribution? Plateforme de commerce électronique SKU et conception de la base de données SPU: comment prendre en compte à la fois les attributs définis par l'utilisateur et les produits sans attribution? Apr 19, 2025 pm 11:27 PM

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 ...

See all articles