Bonjour,
J'ai beau me creuser la tête, je n'arrive pas à comprendre à quoi peuvent bien servir concrètement les opérateurs <<, >> et >>>
Vous en êtes-vous déjà servi ? Si oui, dans quel but ?
Merci !
Bonjour,
J'ai beau me creuser la tête, je n'arrive pas à comprendre à quoi peuvent bien servir concrètement les opérateurs <<, >> et >>>
Vous en êtes-vous déjà servi ? Si oui, dans quel but ?
Merci !
çà décale les bits, c'est utilisé par certains algorithmes travaillant sur les bits. La pluspart du temps on s'en sert pas, puisque la pluspart des algos en ont pas besoin. Parmis les algos qui utilisent fortement ce genre d'opération, de tête:
les calculs de hash
les algorithme de pseudo random
certains algorithmes de cryptage
certains algorithmes de compression
on peut ajouter :
- la multiplication entiere rapide par 2.
- la division entiere rapide par 2.
- la creation d'une couleur codee dans un entier 32-bits a partir des composants ARGB et inversement.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
pour les divisions entières, bien que c'était un gain non négligeable en terme de cycles cpu sur les 386, les techniques d'optimisation actuelles ne sont plus les mêmes qu'avant. Je pense que les cpu modernes peuvent faire la division entière, sans utiliser les shifts,en seulement 1 cycle, de plus, avec les pipelines multiples des cpu, ce qui compte c'est de s'assurer que le pipeline ne se vide pas pour gagner le plus de temps possible. Y a quasiment plus que les compilos qui savent gérer çà, c'est devenu trop complexe pour le faire à la main :p
De plus, java étant une machine régulière, la vitesses des instruction n'est pas régie pas une loi fixe :p
par contre +1 pour la couleur rgb 32, j'avais oublié çà.
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Merci beaucoup pour vos réponses, je vais aller jeter un oeil sur cette histoire de couleur pour avoir un cas vraiment concret.
résultat binaire, les bits du int ressemblent à çà:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int rvb = ((r && 0xFF) << 16) + ( (v &0xFF << 8)) + ( b &0xFF);
Code : Sélectionner tout - Visualiser dans une fenêtre à part 00000000rrrrrrrrvvvvvvvvbbbbbbbb
Sauf que la ca va etre tout transparent sur le coup avec les couleurs 32-bits Java standard (c'est tout a fait correct pour une couleur 24-bits, sauf la pitite erreur dans la composition du rouge avec un && plutot qu'un &) :
avec a = 255 pour une couleur opaque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part int argb = ((a & 0xFF) << 24) | ((r & 0xFF) << 16) | ((g & 0xFF) << 8) | ((b & 0xFF) << 0);
Note : sur des entiers + ~= | d'ou la formule de tchize_.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Ca existe egalement en JScript, ECMAScript/JavaScript.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
le shift gauche, qu'il soit signé ou non, a le même comportement, donc l'opérateur <<< n'a pas de raison d'exister. Pour le shift droit non signé en C, il faut passer par une variable non signée, autrement dit faut chipoter
en java on a un opérateur shift droit non signé pour compenser l'absence de variable non signée![]()
Partager