Division par deux - Division by two

En mathématiques , la division par deux ou réduire de moitié a également été appelé médiation ou dimidiation . Le traitement de cela comme une opération différente de la multiplication et de la division par d'autres nombres remonte aux anciens Égyptiens, dont l' algorithme de multiplication utilisait la division par deux comme l'une de ses étapes fondamentales. Certains mathématiciens, jusqu'au XVIe siècle, ont continué à considérer la réduction de moitié comme une opération distincte, et elle continue souvent à être traitée séparément dans la programmation informatique moderne . L'exécution de cette opération est simple en arithmétique décimale , dans le système de numération binaire utilisé en programmation informatique et dans d'autres bases paires .

Binaire

En arithmétique binaire, la division par deux peut être effectuée par une opération de décalage de bits qui décale le numéro d'une place vers la droite. Il s'agit d'une forme d' optimisation de la réduction de la force . Par exemple, 1101001 en binaire (le nombre décimal 105), décalé d'une place vers la droite, est 110100 (le nombre décimal 52) : le bit de poids faible, un 1, est supprimé. De même, la division par n'importe quelle puissance de deux 2 k peut être effectuée en déplaçant k positions vers la droite . Étant donné que les décalages de bits sont souvent des opérations beaucoup plus rapides que la division, le remplacement d'une division par un décalage de cette manière peut être une étape utile dans l'optimisation du programme . Cependant, pour des raisons de portabilité et de lisibilité du logiciel , il est souvent préférable d'écrire des programmes en utilisant l'opération de division et de faire confiance au compilateur pour effectuer ce remplacement. Un exemple de Common Lisp :

 (setq number #b1101001)   ; #b1101001  —  105
 (ash number -1)           ; #b0110100  —  105 >> 1 ⇒ 52
 (ash number -4)           ; #b0000110  —  105 >> 4 ≡ 105 / 2⁴ ⇒ 6

Les déclarations ci-dessus, cependant, ne sont pas toujours vraies lorsqu'il s'agit de diviser des nombres binaires signés . Un décalage vers la droite d'un bit divisera par deux, en arrondissant toujours à l'inférieur. Cependant, dans certaines langues, la division des nombres binaires signés s'arrondit vers 0 (ce qui, si le résultat est négatif, signifie qu'il s'arrondit vers le haut). Par exemple, Java est l'un de ces langages : en Java, -3 / 2s'évalue à -1, alors qu'il -3 >> 1s'évalue à -2. Donc dans ce cas, le compilateur ne peut pas optimiser la division par deux en la remplaçant par un décalage de bit, alors que le dividende pourrait éventuellement être négatif.

Virgule flottante binaire

En arithmétique binaire à virgule flottante , la division par deux peut être effectuée en diminuant l'exposant de un (tant que le résultat n'est pas un nombre subnormal ). De nombreux langages de programmation fournissent des fonctions qui peuvent être utilisées pour diviser un nombre à virgule flottante par une puissance de deux. Par exemple, le langage de programmation Java fournit la méthode java.lang.Math.scalbde mise à l'échelle par une puissance de deux, et le langage de programmation C fournit la fonction ldexpdans le même but.

Décimal

L' algorithme suivant est pour le nombre décimal. Cependant, il peut être utilisé comme modèle pour construire un algorithme pour prendre la moitié de n'importe quel nombre N dans n'importe quelle base paire .

  • Écrivez N , en mettant un zéro à sa gauche.
  • Parcourez les chiffres de N par paires qui se chevauchent, en notant les chiffres du résultat du tableau suivant.
Si le premier chiffre est Même Même Même Même Même Impair Impair Impair Impair Impair
Et le deuxième chiffre est 0 ou 1 2 ou 3 4 ou 5 6 ou 7 8 ou 9 0 ou 1 2 ou 3 4 ou 5 6 ou 7 8 ou 9
Écrivez 0 1 2 3 4 5 6 7 8 9

Exemple : 1738/2=?

Écrivez 01738. Nous allons maintenant travailler à la recherche du résultat.

  • 01 : chiffre pair suivi de 1, écrivez 0.
  • 17 : chiffre impair suivi de 7, écrivez 8.
  • 73 : chiffre impair suivi de 3, écrivez 6.
  • 38 : chiffre impair suivi de 8, écrivez 9.

Résultat : 0869.

D'après l'exemple, on peut voir que 0 est pair .

Si le dernier chiffre de N est un chiffre impair, il faut ajouter 0,5 au résultat.

Voir également

  • Une moitié
  • Médiane , une valeur qui divise un ensemble de valeurs de données en deux sous-ensembles égaux
  • Bisection , la partition d'un objet géométrique en deux moitiés égales
  • Dimidiation , une méthode héraldique de joindre deux armoiries en divisant leurs dessins en moitiés

Les références