PDA

View Full Version : بدست آوردن ماکزیمم a , b بدون استفاده از عملگر های مقایسه ای



amir_mohammadi
چهارشنبه 28 دی 1390, 13:23 عصر
چطوری ماکزیمم a , b رو بدون استفاده از عملگر های مقایسه ای بدست آوریم؟

r00tkit
چهارشنبه 28 دی 1390, 14:06 عصر
max = a-((a-b)&((a-b)>>31))

31 تعدا بیت های عدد -1 هستش
http://guru.multimedia.cx/category/optimization/

soorena
چهارشنبه 28 دی 1390, 14:06 عصر
int getMax(int a, int b) {
int c = a - b;
int k = (c >> 31) & 0x1;
int max = a - k * c;
return max;
}


سلام !!

حامد مصافی
چهارشنبه 28 دی 1390, 14:41 عصر
قبل از طرح سوال جستجو کنید
http://barnamenevis.org/showthread.php?312420-%DB%8C%D8%A7%D9%81%D8%AA%D9%86-%D8%B9%D8%AF%D8%AF-%D8%A8%D8%B2%D8%B1%DA%AF%D8%AA%D8%B1-%D9%88-%DA%A9%D9%88%DA%86%D8%AA%D8%B1-%D8%A7%D8%B2-%D9%85%DB%8C%D8%A7%D9%86-%D8%AF%D9%88-%D8%B9%D8%AF%D8%AF-%D8%A8%D8%AF%D9%88%D9%86-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-%D8%B4%D8%B1%D8%B7%DB%8C