Bonjour � tous,
je suis entrain de retaper une application Javascript en python, et je suis tomb� sur un probl�me:
� un moment dans le script, je tombe sur un ligne:
alors, je farfouille un peu et je trouve ceci sur un autre site :
Code : S�lectionner tout - Visualiser dans une fen�tre � part return (x<<n)
Okay... alors, on refait le truc a la mano ensemble,<< :: Rotation � gauche :: D�cale les bits vers la gauche (multiplie par 2 � chaque d�calage). Les z�ros qui sortent � gauche sont perdus, tandis que des z�ros sont ins�r�s � droite
pour x = 1751007518
et n = 1
Donc, okay, �a correspond bien � une multiplication par 2.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 (dec)1751007518 = (bin)1101000010111100100000100011110 on d�calle le bit : 11010000101111001000001000111100 (bin)11010000101111001000001000111100 = (dec)3502015036
et c'est d'ailleur ce que python me reponds si je lui demande "1751007518<<1"
Alors.... pourquoi en javascript "alert(1751007518<<1)" me renvoie -792952260 ???? oO
en regardant d'un peu plus pres, Si on compare un peu les deux valeur binaire:
j'ai remarquer que les valeur en rouge �tait des inverses, mais c'est la seule piste que j'ai...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 1101000010111100100000100011110 (1751007518) __101111010000110111110111000100 (-792952260)
Ou peut �tre un probl�me avec le bit du signe ?
Donc voila, si quelqu'un � une explication, voir un bout de code (python) qui me permetrai de faire quelque chose l'�quivalent �a serrait super ^^
Partager