opérateur de décalage gauche

S

shiv_emf

Guest
Hii gars ...Je suis confondu avec l'opérateur de décalage à gauche ...

Je suppose décalage à gauche un NOMBRE .. sera le signe de changement de numéro??
par exemple ...
suppose pour la variable de type entier ...taille du nombre entier est 4bytes THT est de 32 bits

jachères système de complément à 2 de représentation ...si changement de v smalllest nombre négatif ... ce sera le résultat??

 
shiv_emf Salut ...

En C, si votre variable est signé, le signal sera étendu, mais si la variable Thew n'est pas signé, le compilateur à zéro automatique de remplissage.Est-ce votre doute?J'espère ont été utiles

 
Merci pour la réponse ur hey!

mais
int x;

Cette déclaration est signée entier ...si je leftshift il est THT
100000000000000000000000000 (1 MSB et 31 "zéro")
RAS sera la sortie??
elle est nulle ou même numéro que ..signé peu shud nt être modifié

 
il vaut mieux vous forcer à zéro de l'initialisation.par exemple

int x = 0;

x = x <<31;

la sortie est x = 0;

si
x = 1;
x = x <<31;
puis

x = 0x80000000;

ai-je été clair?sa meilleure pour initialiser votre int.Si vous utilisez unsigned int, son automatcally zéro initialisé.

 
un autre

en cas de nombre négatif !!....système stocke ces valeurs dans complément à 2

Maintenant, si variable u leftshift .....Signé changements seront peu???

J'espère que je suis clair maintenant

 
shiv_emf Salut, Merci pour "aidé".Ce fut un plaisir.

Maintenant, si votre variable, signé, est négatif et le décalage gauche, le signal sera kepted.C'est la même chose thats OS instructions en assembleur qui tournent à gauche en maintenant le signal.Etais-je clair?

 
Vous devez être prudent sur ce dernier..

quarts de droit dépend de l'implantation.Cela signifie que vous devez regarder comment votre compilateur traite signé de décalage à droite avec des valeurs négatives.Il peut être soit un décalage logique (vous perdez le bit de signe et il devient 0) ou décalage arithmétique (le bit de signe est conservé).

Tous les compilateurs Microsoft utilisent changements arithmétique.

La meilleure façon de dire, c'est d'écrire du code de test et de définir un int à une valeur négative, décalage à droite l'un et de l'utilisation du débogueur pour voir le résultat.

 
Nice one ...Merci pour l'aide

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sourire" border="0" />Eh bien, je suis en train de RedHat Linux OS ...en utilisant GCC

donc je le VHA pour le chk sur ..

 
shiv_emf a écrit:

un autreen cas de nombre négatif !!....
système stocke ces valeurs dans complément à 2Maintenant, si variable u leftshift .....
Signé changements seront peu???J'espère que je suis clair maintenant
 
Verilog 2001 a défini>>> et <<<pour les opérations signées déplacement.
-
Amr Ali

 

Welcome to EDABoard.com

Sponsor

Back
Top