2014-06-21 3 views
0

Conversion de ce code javascript:unsigned char en javascript

for(i = 0; i < 256; i++) 
    m[i] = (unsigned char) i; 

Comment puis-je convertir la partie unsigned char?

for (i = 0; i < 256; i++) { 
    m[i] = (?)i 
} 
+0

'm [i] = i'? Il n'y a que "nombre" dans JS comme type de données numériques. Pensez plutôt à la façon de convertir exactement ce code, vous devriez découvrir pourquoi 'm [i] = (unsigned char) i;' est fait en premier lieu et ensuite décider si c'est applicable à JS. –

+0

Cela fait partie d'un arc4 prng. Je vais essayer de vérifier ici pourquoi. – majidarif

Répondre

1

Vous ne devez pas faire quoi que ce soit à la valeur pour obtenir le résultat correspondant:

for (i = 0; i < 256; i++) { 
    m[i] = i; 
} 

Un unsigned char en C est un type de données entier 8 bits qui peut contenir les valeurs 0 255. Comme aucune valeur de la boucle ne sort de cette plage, la distribution ne modifie aucune des valeurs, elle ne modifie que le type de données pour l'adapter au type de la baie.

Comme les nombres en Javascript sont des nombres à virgule flottante en double précision, vous n'obtiendrez naturellement pas un tableau de valeurs à 8 bits. Que ce soit un problème est une question de la façon dont le tableau est utilisé plus tard.

+0

Merci, cela a du sens. Je ne suis pas vraiment bon avec C. En ce qui concerne la 'comment le tableau est utilisé', cela aide-t-il? [lien vers mon autre question connexe] (http://stackoverflow.com/questions/24337316/arc4-prng-c-to-javascript-code) – majidarif

+1

@majidarif: Les valeurs ne sont déplacées que dans le tableau, de sorte que won ' t être un problème. – Guffa

+0

génial. Je vous remercie. Appris quelque chose aujourd'hui :) – majidarif

Questions connexes