Maison  >  Article  >  interface Web  >  Le concept et les exemples de stockage au niveau du bit

Le concept et les exemples de stockage au niveau du bit

零下一度
零下一度original
2017-06-23 09:14:471455parcourir

La saison des diplômes a mis du temps à arriver. . . Après ce mois de juin, je suis officiellement entré dans la société. . . J’ai toujours l’impression que je ne suis pas encore prêt. . . . . . . . . . Grand tournant. . . Enregistrez quelques connaissances récentes. . .

Le concept de stockage au niveau du bit

Dans le stockage de base de données, une classe de chaînes binaires peut être utilisée pour enregistrer plusieurs valeurs. Lorsque cette valeur binaire est composée de 0 et 1, elle peut De droite à. à gauche, chaque bit est ajouté selon une valeur de calcul 2^n puis converti en un nombre décimal, atteignant ainsi l'objectif de sauvegarder plusieurs situations avec une valeur décimale.

Par exemple

Il existe désormais 3 styles CSS différents qui peuvent être appliqués à différents endroits, tels que des applications, des PC, des petits programmes, etc.

Si vous stockez par valeur, utilisez 1-3 pour représenter les trois styles (styleType) et utilisez 1-3 pour représenter respectivement les types de support application, PC et applet (supportType). vous devez appuyer sur cette façon :

styleType supportType
1 1,3
2 1,2,3
3 1
... ...

Évidemment, dans ce cas, le champ supportType stockera plusieurs valeurs représentatives de styleType.

Alors, à quoi ressemble le stockage au niveau du bit ? Il est représenté par une chaîne binaire à 3 chiffres. Chaque chiffre de gauche à droite correspond aux styles 1 à 3 signifie que le style est pris en charge et 0 signifie que le style n'est pas pris en charge. Si vous souhaitez représenter la prise en charge des styles 1 et 3, utilisez 101 pour le représenter. Les premier et troisième chiffres sont 1 et les autres positions sont 0. Ensuite, lorsque nous stockons, stockons-nous simplement une telle chaîne à 3 chiffres ? Non, ce qui doit être stocké est une valeur décimale convertie. Étant donné que le nombre décimal obtenu en ajoutant chaque bit après conversion selon 2^n doit être inversement résoluble, vous pouvez savoir quel style représente cette valeur.

S'il est stocké au niveau du bit, il doit être stocké comme ceci :

styleType supportType
1 5
2 7
3 1
... ...

Application pratique

① Scénario 1. Dans l'environnement de l'application, filtrez les styles, c'est-à-dire uniquement ceux qui prend en charge l'application. Les styles sont filtrés et affichés.

Principe d'application : ET numérique, seulement 1 et 1 donnent 1.

En d'autres termes, si nous voulons filtrer les styles qui prennent en charge l'application, c'est-à-dire filtrer les styles correspondant au moment où le premier chiffre de styleType est 1, c'est-à-dire 1**, c'est-à-dire que la valeur décimale contient 4 Ce nombre.

En js, les nombres décimaux peuvent être directement traités par AND, de sorte que le code peut être directement jugé comme ceci lors du parcours et du filtrage :

(item.supportType & 4 == 4)?'对应的styleType支持':'对应的styleType不支持'    //注意,==优先级比&大,所以要加括号

②Scénario 2, modifiez supportType

Parce que ce qui est enregistré dans la base de données est un tableau décimal, donc lors de la modification de la relation correspondante, vous doit connaître le changement De quelle position il s'agit et changer la valeur à la position correspondante. La représentation de type binaire est le processus de changement de 0 en 1 ou de 1 en changeant 0, mais le changement du tableau décimal est le processus de changement du 2 ^ n. augmentation et diminution du bit correspondant.

Par exemple :

    var supportType = { //按位编码,预留3位
        'app':4,
        'pc':2,
        'mini':1
    }
  var supportVal = 0;
  i f(obj.supportmini == 1){ //支持小程序
     supportVal= supportVal+supportType .mini;
   } 
  if(obj.supportPc == 1){ //支持pc
     supportVal= supportVal+ supportType .pc;
  } 
  obj.supportVal= supportVal;

Enfin, enregistrez le nombre décimal correspondant dans la base de données.

Pour plus de scènes, veuillez vous référer ici.  

 

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