PDA

View Full Version : اولویت عملگرها



__masumeh
شنبه 24 فروردین 1392, 10:03 صبح
اینکه در c وقتی چند تا ضرب و تقسیم داشته باشیم اولویت از چپ به راست است ولی اگر از راست به چپ هم محاسبه شد جواب یکی می شود اگر اینطور نیست میشه یک مثال بزنید که فرق کنه؟

linux
شنبه 24 فروردین 1392, 13:34 عصر
اینکه در c وقتی چند تا ضرب و تقسیم داشته باشیم اولویت از چپ به راست است ولی اگر از راست به چپ هم محاسبه شد جواب یکی می شود اگر اینطور نیست میشه یک مثال بزنید که فرق کنه؟
اولویتها ربطی به زبان برنامه نویسی ندارد بیشتر یک مساله ریاضی هست.

رامین مرادی
شنبه 24 فروردین 1392, 13:43 عصر
نه مثلا" اگه عبارت زير باشه

2*3/4

خوب مي دونيد كه ضرب و تقسم الويت يكساني دارند در اينگونه موارد ابتدا عمل سمت چپي انجام شده سپس عمل سمت راست صورت مي پذيرد

__masumeh
شنبه 24 فروردین 1392, 13:52 عصر
نه مثلا" اگه عبارت زير باشه

2*3/4

خوب مي دونيد كه ضرب و تقسم الويت يكساني دارند در اينگونه موارد ابتدا عمل سمت چپي انجام شده سپس عمل سمت راست صورت مي پذيرد

در مثال شما هم چه ضرب اول انجام بشه چه تقسیم هر دو حالت جواب 1.5 میشه.

Ananas
شنبه 24 فروردین 1392, 14:26 عصر
int x = 2*3/4; // 1
int y = 2/4*3; // 0

این دو تا خط با هم فرق داره پس اولویت مهمه ولی اگه به شکل اعشاری باشه بعد تبدیل بشه به صحیح با هم فرق ندارن مثلا:

int x = 2.0*3.0/4.0; // 1
int y = 2.0/4.0*3.0; // 1

یا با پرانتز نتیجه تغییر میکنه مثلا :

int z = 1 & 0x8000 == 0; // 0
int w = (1 & 0x8000) == 0; // 1

در محاسبات صحیح (نه اعشاری) جواب ها با هم فرق داره.

رامین مرادی
شنبه 24 فروردین 1392, 14:27 عصر
آره تو مثال من اينطوريه ولي از نظر كامپايلر ها اگر عملگري هايي با الويت يكسان وجود داشته باشن عملگري كه در سمت چپ باشه اجرا خواهد شد اگه اشتباه مي گم دوستان تذكر بدن!!!