Shift - helpneeded avec codeexplanation

J

jasonkee111

Guest
quelqu'un peut expliquer le code ci-dessous

fil d'entrée signé [16:00] D,
reg de sortie signé [16:00] Q);

* @ toujours commencer
Q = D;
for (j = 0; j <i, j = j 1)
Q = (Q> 1) | (D [16] <<16);

Question:
1.Quel est le sens D `[16] <<16?de je comprends, c'est déplacement vers la gauche 16 fois de D où D 1 bit seulement en raison de D [16].Suis-je mal compris?

2.Pourquoi l'utiliser Q et D dans l'état "Q = (Q> 1) | (D [16] <<16);" puisque D est attribuée à Q?

Merci

 
Je ne suis pas complètement sûr de savoir pourquoi cela se produit mais il semble que (D [16] <<16) prend votre bit de signe et et l'assigne à Q [16].Comme les deux variables sont vos signé, lorsque Q est décalé d'un, le bit MSB est mis à jour par «ORing 'il avec (Q> 1).Je serais intéressé de connaître les détails à ce sujet si vous en savoir plus!

 

Welcome to EDABoard.com

Sponsor

Back
Top