смени оператора

S

shiv_emf

Guest
Hii момчета ...аз съм объркан с левия смени оператора ...

Предполагам, че едно ляво преместване НОМЕР .. ще знака на брой промени?
например ...
Предполагам, за цели числа тип променлива ...размер на цяло число е 4bytes THT е 32 бита

система fallows 2's допълни представителство ...Ако V смяна smalllest отрицателно число ... какъв ще бъде резултатът?

 
Здравейте shiv_emf ...

В С, ако вашата променлива е подписан, сигналът ще бъде удължен, но ако thew променлива е грозен, съставител автоматично попълване нула.Това ли е Вашата съмнение?Надявам се, че са полезни

 
хей благодаря за Ур отговор!

но
Int X;

Тази декларация е подписана цяло число ...ако аз leftshift THT е
100000000000000000000000000 (1 от MSB и 31 "нула")
WHT ще бъде изход?
тя е равна на нула или един и същ номер, както е ..подписан малко shud NT да се промени

 
това е по-добре сила инициализиране на нула.за пример

Int х = 0;

X = X <<31;

изхода е х = 0;

ако
х = 1;
X = X <<31;
после

х = 0x80000000;

бях Ясно ли е?по-добре да си инициализира Int.Ако използвате грозен Int, си automatcally нула инициализира.

 
друг

в случай на отрицателно число !!....Системата съхранява тези ценности в 2's допълват

Сега, ако ф leftshift променлива .....Подписано BIT ще промени???

Надявам се, че съм ясна сега

 
Shiv_emf Здравейте, благодаря за "Подпомогнат".Беше удоволствие.

Сега, ако вашата променлива, подписан, е отрицателен и ляво на смени, сигналът ще бъде kepted.Това е една и съща операционна този инструкциите в ASM, че върти наляво водене на сигнала.Бях Ясно ли е?

 
Вие трябва да бъдете внимателни за това..

Право смени изпълнение
са зависими.Това означава, че трябва да търсите начина на компилатор третира подписан право смяна с отрицателни стойности.Тя може да бъде логична смяна (губите знака малко и става 0) или средноаритметичната смяна (знак малко се пази).

Всички уеб компилатори използва аритметична смени.

Най-лесният начин да разберете е да се напише някои правила за изпитване и да постанови Int с отрицателна стойност, нали го смени един и използването на дебъгер да погледнем в резултата.

 
приятен един ...благодаря за помощ

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />Ами аз съм на работа RedHat Linux OS ...използване ССЗ

така аз HAV да го CHK се ..

 

Welcome to EDABoard.com

Sponsor

Back
Top