Ce n'0x0F veux dire? Et que fait ce code signifie?
J'ai ce code. Veuillez me faire comprendre ce que fait ce code signifie réellement
for(var i = 0; i < input.length; i++)
{
x = input.charCodeAt(i);
output += hex_tab.charAt((x >>> 4) & 0x0F)
+ hex_tab.charAt( x & 0x0F);
}
Qu'est-ce que 0x0F? Et, >>> Signifie?
0x0f
est une représentation hexadécimale d'un octet. Plus précisément, le modèle binaire00001111
- Ok, Et comment est-ce que l'expression de le faire travailler là-bas? comment est-ce que '(x >>> 4) & 0x0F' de retour la valeur de l'entier, comme chatAt() de la fonction nécessitent une entrée entière
Vous devez vous connecter pour publier un commentaire.
>>>
est non signé au niveau du bit décalage vers la droite de l'opérateur.0x0F
est un nombre hexadécimal qui est égal à 15 en décimal. Il représente les quatre bits inférieurs, et traduit le peu-modèle0000 1111
.&
est un bit à bitAND
opération.(x >>> 4) & 0x0F
vous donne le quartet supérieur d'un octet. Donc, si vous avez6A
, en gros, vous avez jusqu'à la fin avec06
:x & 0x0F
vous donne la plus faible grignoter de l'octet. Donc, si vous avez6A
, vous vous retrouvez avec0A
.De ce que je peux dire, on dirait que c'est en additionnant les valeurs de l'individu, des amuse-gueules de tous les caractères dans une chaîne, peut-être de créer une somme de contrôle d'une certaine sorte.
0x0f
est une représentation hexadécimale d'un octet. Plus précisément, le modèle binaire00001111
C'est en prenant la valeur du caractère, de la décaler de 4 places pour le droit (
>>> 4
, c'est un unsigned maj) et en effectuant ensuite un peu sageAND
avec le modèle ci-dessus - par exemple en ignorant le plus à gauche 4 bits résultant en un nombre de 0 à 15.Puis il ajoute ce nombre à l'origine du personnage le plus à droite 4 bits (le 2ème
& 0x0F
sans changement), l'autre de 0 à 15 nombre.>>>
n'est pas une simple maj de droite. C'est un unsigned décalage à droite et il ignore le bit de signe.0x0F
est un nombre en hexadécimal. Et>>>
est le bit à bit décalage vers la droite de l'opérateur.