Table des matières
Qu'est-ce que l'opération sur bits
Opérations de base sur les bits
Juge parité
Échangez deux nombres
Conversion du signe
Trouver la valeur absolue
Application des opérations sur les bits
Les opérations sur les bits pour implémenter les opérations A+B sont des questions d'algorithme courantes.
Maison Java javaDidacticiel Quelles sont les techniques pour les opérations sur les bits Java ?

Quelles sont les techniques pour les opérations sur les bits Java ?

Apr 29, 2023 am 10:34 AM
java

Qu'est-ce que l'opération sur bits

Nous savons tous que la forme des données stockées dans les ordinateurs est des données binaires. L'opération sur bits est une méthode d'exploitation des données au niveau binaire qui exploite directement les données binaires composées de 0 et 1.

Opérations de base sur les bits

Il existe six opérations de base sur les bits, à savoir ** ET ou NON Lorsque les deux bits de

& et sont tous deux égaux à 1, le résultat est 1 ou lorsque les deux bits de sont 0, le résultat est 0 Ou Inversion0 passe à 1, 1 passe à 0décalage à gauchedeux chacun Tous les bits de report sont décalés vers la gauche d'un certain nombre de bits, le bit haut est rejeté, et le bit faible est complété par 0>>Shift rightChaque bit binaire est décalé vers la gauche d'un certain nombre de bits, le bit élevé est ignoré et le bit élevé est complété avec le signe bit ou zéro, selon la situation Compilateur
  • ** Tout d'abord, il doit être clair que les opérations sur les bits ne peuvent opérer que sur des entiers**

  • En jdk, le décalage à droite Java est une opération de décalage à droite arithmétique

  • ** La priorité des opérations sur les bits est très faible. Il est donc préférable d'utiliser des parenthèses**

Quelles sont les techniques pour les opérations sur les bits Java ?

La sortie du code ci-dessus :

Quelles sont les techniques pour les opérations sur les bits Java ?

Analysons pourquoi ce résultat est affiché :

  • Tout d'abord, pour 13. , on écrit son Binaire : 0000 1101

  • Décalage à droite de deux places : 0000 0011. Puisque le décalage à droite en jdk est un décalage arithmétique à droite, les bits hauts sont remplis de 00, et le résultat est 3

  • Pour -13, le code binaire : 1111 0011

  • Décaler vers la droite de deux bits, compléter le bit de signe dans l'ordre supérieur, 1111 1100, le résultat est -4

Commun conseils pour les opérations sur les bits

Les opérations sur bits sont souvent utilisées pour certaines petites opérations, car elles ne peuvent opérer que sur des nombres entiers, leurs utilisations sont donc limitées, mais certaines astuces couramment utilisées valent la peine d'être maîtrisées, comme juger les pairs et les impairs, échanger deux nombres, échanger des signes, trouver valeurs absolues, etc. Nous les présenterons un par un ci-dessous.

Juge parité

La différence entre la parité et l'égalité se reflète en binaire, c'est-à-dire que la fin est 0, 1. Évidemment, lorsque la fin est 0, c'est un nombre pair, et lorsque la fin est 1, il est le dernier nombre impair. Ainsi, la méthode pour déterminer la parité est la suivante :

Quelles sont les techniques pour les opérations sur les bits Java ?

Un petit programme de test :

Quelles sont les techniques pour les opérations sur les bits Java ?

Le programme ci-dessus produira tous les nombres pairs dans les 1000

Échangez deux nombres

Utilisez des opérations sur bits pour échanger deux nombres. L'avantage est qu'il n'y a pas besoin de la troisième variable temporaire (la limitation est que seules les variables entières peuvent être échangées)

Quelles sont les techniques pour les opérations sur les bits Java ?

Analysez comment l'échange se produit :
D'abord a^=b, c'est-à-dire a=(a^ b);
b^= a signifie b=b(ab). Puisque l'opération satisfait la loi commutative, b(ab)=bb^a. Un nombre qui est XORé avec lui-même doit être 0, car il doit être égal à lui-même. Donc, si un nombre est XORé avec 0, 1 et 0 seront toujours 1, et 0 et 0 seront toujours 0, donc évidemment un nombre et. 0 Après XOR, bien sûr, c'est toujours lui-même. Donc à ce moment, b se voit attribuer la valeur a.
La dernière étape, a^=b est a=ab Puisque les deux étapes précédentes montrent que a=(ab), b=a, a=ab signifie a=(ab)^a. . Par conséquent, a se verra attribuer la valeur de b.

Conversion du signe

La conversion du signe est évidemment très simple. D'après le code complémentaire similaire, il suffit de prendre l'inverse et d'en ajouter un.

Quelles sont les techniques pour les opérations sur les bits Java ?

Trouver la valeur absolue

La recherche de la valeur absolue est mise en œuvre sur la base du changement de signe. Il suffit de déterminer d'abord s'il s'agit d'un nombre négatif, changez le signe. Sinon, revenez directement.
Pour déterminer s'il est positif ou négatif, vous pouvez déterminer directement son bit de signe, le décaler de 31 bits vers la droite, obtenir le bit de signe et déterminer s'il est positif ou négatif

Quelles sont les techniques pour les opérations sur les bits Java ?

Pour n'importe quel nombre, XOR avec 0 restera inchangé et XOR avec -1, qui est 0xFFFFFFFF, sera équivalent à la négation. Par conséquent, la valeur absolue peut également être obtenue en effectuant un XOR sur a avec i puis en soustrayant i (car i est 0 ou -1, donc soustraire i signifie soit ajouter 0, soit ajouter 1). Par conséquent, le code ci-dessus peut être optimisé :

Quelles sont les techniques pour les opérations sur les bits Java ?

Application des opérations sur les bits

Les opérations sur les bits pour implémenter les opérations A+B sont des questions d'algorithme courantes.

Quelles sont les techniques pour les opérations sur les bits Java ?

Le code ci-dessus réalise l'addition de deux nombres à l'aide d'opérations sur bits sans utiliser l'opérateur +.
Expliquons maintenant le principe de l'addition de deux nombres par opérations sur bits
Tout d'abord, en décimal, on sait que, 7+8, la somme sans retenue est 5, et la retenue est 1, alors on peut ajouter 5+1 selon à la somme sans report et report *10 calcule le résultat final 15.
Semblable au binaire, cette méthode peut également être adoptée
Par exemple
a = 3, b = 6
a : 0011
b : 0110
Sans report et : 0101 Soit 5
Carry : 0010 Soit 2
Donc a+ b devient 5 + (2 1  0001
4sans report et 1001 = 9
carry     0000 = 0
Quand le report est 0, la somme sans report est 9, qui est la somme de a + b.

Vous pouvez constater que ce qui précède est un processus récursif, il n'est donc pas difficile d'écrire le code. Trouver la somme sans retenue de deux nombres n’est en réalité qu’une opération XOR des deux nombres.

^
Quand deux bits sont identiques, le résultat est 1, s'ils ne sont pas identiques, le résultat est 0 ~

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)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Créer l'avenir : programmation Java pour les débutants absolus Créer l'avenir : programmation Java pour les débutants absolus Oct 13, 2024 pm 01:32 PM

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.

See all articles