Quand utiliser les Opérateurs au niveau du Bit cours de création web?
Bien que je saisir le concept des Opérateurs au niveau du Bit, je ne peux pas dire que j'ai rencontré de nombreux cas d'utilisation au cours du processus de création web à laquelle j'ai dû recourir à l'aide d'Opérateurs au niveau du Bit.
- Utilisez-vous des Opérateurs au niveau du Bit?
- Pourquoi utilisez-vous?
- Ce sont quelques exemples de cas d'utilisation?
Souvenez-vous que cette question est spécifiquement conçu pour l'utilisation des Opérateurs au niveau du Bit dans les langages web.
- Il n'y a rien de spécifique sur l'utilisation des opérateurs au niveau du bit dans "langages web". C'est aussi inutile que de demander quand vous utilisez un filtre flou radial en conception de site web?. Double de stackoverflow.com/questions/276706/what-are-bitwise-operators, stackoverflow.com/questions/1746613/bitwise-operation-and-usage , stackoverflow.com/questions/1167956/... et les autres.
- Cette question n'est pas inutile, si l'on considère le volume de la programmation du matériel d'apprentissage axés sur le web dev, qui insistent sur l'enseignement des opérandes de bit-à-bit / opérateurs. Son code plaisir de golf, et utile pour comprendre l'application de l'Informatique dans son ensemble, mais douteux, vous aurez toute utilisation pratique dans webdev - alors, pourquoi la prolifération de l'enseigner?
Vous devez vous connecter pour publier un commentaire.
Mon utilisation principale pour les opérateurs au niveau du bit pourrait être pertinent de n'importe où - représentant un ensemble de drapeaux. Par exemple, vous pourriez avoir un nombre entier dans la base de données représentant un ensemble d'autorisations de sécurité pour un utilisateur, et dans votre application web, vous auriez à vérifier ces avant de continuer.
Ceux qui ont tendance à ne nécessite
&
et|
- par exempleou
Peu déplacement les opérateurs sont de moins en moins utile dans les "affaires" des applications dans mon expérience.
Permission.CreateUser | Permission.ChangePassword;
? @JonSkeetJe vais être plus explicite ici parce que je pense au niveau du bit masques sont un excellent outil qui devrait être dans toutes les devs de ceinture. Je vais essayer de développer les réponses ci-dessus. Tout d'abord, un exemple de l'utilisation d'un entier à maintenir les indicateurs de l'état (utilisation commune):
À ensemble mon état, j'utilise l'opérateur de bits or:
Avis comment je " ou "mon état actuel avec les états que je veux vous mettez sur "on". Qui sait ce que mon état actuel est et je ne veux pas l'emporter.
À unset mon état, j'utilise le bit à bit ET opérateur avec l'opérateur de complément:
À vérifier mon état actuel, j'utilise l'opérateur ET:
Pourquoi dois-je pense que c'est intéressant? Dire que je suis de la conception d'une interface qui définit mon état. Je pourrais écrire une méthode qui accepte trois booléens:
Ou, je pourrais utiliser un numéro unique pour représenter l'ensemble des trois états et de passer une seule valeur:
Si vous choisissez le deuxième modèle que vous serez très heureux lorsque vous décidez d'ajouter un autre état, vous n'aurez pas à briser existant impls de votre interface.
Mes deux cents.
Merci.
Pour les programmeurs Java le xor au niveau du bit opérateur (^) fournit un moyen utile pour code un OU exclusif entre deux booléens. Exemple:
Remarque: il n'y a pas de manipulation de bits d'aller ici, mais c'est un moyen utile d'utiliser le xor bit à bit de l'opérateur (dans la couche web ou n'importe où ailleurs).
(Même peut s'appliquer à C#, car elle est tellement similaire à Java. Pas sûr, cependant).
if ((isFoo || isBar) && isFoo != isBar)
qui peut être plus verbeux, mais aura du sens pour tout le monde sans avoir à google ce^
est.isFoo != isBar
serait l'équivalent, et plus claire.isFoo
etisBar
étaient à la foisfalse
? Le résultat seratrue
, et qui n'est pas correct pour un XOR de comparaison.En plus de drapeaux, il n'y a pas beaucoup de raisons d'utiliser des bits des opérations dans des langages de script.
Mais une fois que vous plongez dans les niveaux de votre pile, bit-opérations deviennent de plus en plus critique.
Cette question est déjà répondu, mais j'aimerais partager mon expérience avec
&
.J'ai utilisé
&
y a peu de temps pour valider un formulaire d'inscription quand je faisais un ASP.NET C# exercice où le court-circuitée&&
ne permettrait pas d'atteindre l'effet désiré aussi facilement.Ce que je voulais faire était de mettre en évidence tous les champs non valides dans le formulaire et afficher un message d'erreur d'étiquette à côté de chaque champ non valide, et dehighlight tous les champs valides et supprimer les messages d'erreur de leur part.
Le code que j'ai utilisé c'était quelque chose comme ceci:
- Je utiliser
&&
au lieu de&
, le if dansbtnSubmitClicked
méthode de souligner que le premier champ non valide, et tous les autres champs non valides après ce ne serait pas mis en évidence et son message d'erreur ne s'affichent pas car en court-circuit&&
serait arrêter la vérification de l'état après un faux est rencontré.Il peut y avoir une meilleure façon de réaliser la même chose, mais j'ai trouvé
&
utile à ce moment.En général, vous n'avez pas besoin de préoccupation à propos des opérations au niveau du bit. Vous pouvez penser en octets, ints, des chambres doubles, et d'autres de niveau plus élevé de types de données. Mais il ya des moments où vous aimeriez être en mesure d'aller à l'échelon d'un bit.
L'un des plus courants d'utilisation du cas des opérateurs au niveau du bit sont les drapeaux (en php par exemple). Le opérateurs au niveau du bit sont également utilisés dans le fichier binaire opérations d'e /s.
Je utiliser em chaque tellement souvent, mais jamais dans les endroits où je peut les éviter. Le plus souvent je les ai utilisé sont les deux situations suivantes.
Sur le hors-sujet côté des choses, dans les langages de haut niveau, en particulier dans analysé les langues (comme PHP), des opérations bit à bit sont des tonnes plus lent[citation nécessaire] de la normale de l'arithmétique. Ainsi, alors que Jon est la vérification de l'autorisation peut être ok, à partir d'un point de vue des performances, il n'est pas très "native" dans le domaine de web.
La seule fois où j'ai eu à les utiliser en dehors de l'autorisation de l'accès était pour un projet que j'avais fait pour un analyseur qui a la Couleur d'Id à ints
je.e
et puis j'ai reçu une propriété
ensuite utilisé au niveau du bit pour comparer la couleur donnée à la propriété
Je pense que les opérateurs sur les bits sont très forts, si elle est utilisée intelligemment.
Supposons que vous avez une "Boutique en Ligne". Et certains de vos articles appartiennent à plusieurs Catégories.
Soit, vous devez Créer un plusieurs-à-Plusieurs relation. Ou vous pouvez donner à vos Catégories supplémentaires Binaire-ID et de votre produit tout simplement mettre le bit à Bit combinition de Catégories-Id
Je pense que dans quelques ligne je ne peux pas l'expliquer en détail. DÉSOLÉ