سلام دوستان . میخواستم بدونم چجوری میشه دوتا عدد و مقایسه کرد بدون هیچ تابعی! . استادمون گفته یه برنامه بنویسید که بدونه هیچ تابع یا دستور شرطی یک تابع بنویسید که بگه کدام عدد بزرگترع کدام کوچکتر!
Printable View
سلام دوستان . میخواستم بدونم چجوری میشه دوتا عدد و مقایسه کرد بدون هیچ تابعی! . استادمون گفته یه برنامه بنویسید که بدونه هیچ تابع یا دستور شرطی یک تابع بنویسید که بگه کدام عدد بزرگترع کدام کوچکتر!
سلام
دوست عزیز کامپایلر بورلند نسبت به کامپایلرهای مشابه در زمینه ++c حرفی واسه گفتن نداره به همین خاطر این تالار زیاد بازدید نمیشه اگه بتونید سوال خودتون را در تالار زیر مطرح کنید که افراد بیشتری اونجا هستند
https://barnamenevis.org/forumdisplay.php?45
جواب سوال شما هم قبلا پاسخ داده شده که در تاپیک زیر هست:
https://barnamenevis.org/showthread.php?435697
سلام جواب شما:
bigger:=(x>y)*x+(y>x)*y;
سلام
اگر بخوام بزرگتر یا کوچکتر بودن یک عدد رو بدون شرط حساب کنم. از شیفت به راست استفاده می کنم.
نکته: حتی در زبان اسمبلی هم شرط داریم. همهی کارهای برنامه نویسی با شرط ها انجام می شود.
if بررسی می کنه که اگر 0 بود نکنه و اگر یک بود اجرا کنه. پس اگر استفاده نکنیم باید اگر رو از جمله حذف کنیم. که میشه 0 بود نکنه و 1 بود اجرا کنه.
int a = 4; int b = 3;
Console.WriteLine("________number 1 = \nZero means small and one means big");
Console.WriteLine(a >> 2 );
Console.WriteLine("________number 2 = \n");
Console.WriteLine(b >> 2);
Console.ReadLine();
مثلا برای اینکه بدونم 4 بزرگتر از 3 هست هر دو عدد را 2 بار شیفت به راست دادم. بعد دیدم که عدد 4 یک بیت یک اضاف داره. و اینجوری فهمیدم که بزرگتره. ولی 3 هیچ بیتی در آخر نداشت.
پس 2 جواب شد. یکی با XOR و یکی هم با SHIFT R(ولی برای اعداد منفی جواب نمیده)
چند تا لینکASCII Code - The extended ASCII table
Compute the minimum or maximum of two integers without branching - GeeksforGeeks
Bit Twiddling Hacks
جابجایی دو متغییر بدون استفاده از متغییر کمکی