====== عملیّات شوم ======
برنامهی زیر را در نظر بگیرید.
آیا این برنامه بهدرستی کامپایل میشود؟ در صورت منفی بودن جواب، خطای کامپایل آن
را رفع کنید.
#include
void show(x) { printf("%d\n", x); }
int main() {
/* place any of below codes here */
return 0;
}
برای هر یک از تکّه کدهای زیر، در صورتی که آن را در قسمت مشخص شده در ''main''
برنامهی بالا قرار دهیم، خروجی یا خطا را بنویسید.
**کد الف.** توجه کنید که اولویت $>>$ و $<<$ برابر است. عیناً مانند $+$ و $-$.
int a = 0x5C;
show(a >> 4 << 4);
**کد ب.** توجه کنید که اولویت $\sim$ بیشتر از / است.
int b = ~unsigned(0) / 2;
show(b);
**کد ج.** در C چگونه میشد باینری نوشت؟!
int c = 01010 / 10;
show(c);
**کد د.** اولویت عملگرهای unary بالاتر از عملگرهای binary است.
unsigned char d = !55 ^ ~55;
show(d);
**کد ه.** خیلی هم پیچیده نیست!
unsigned char e = 1;
for (int i=0; i+1<7; i++)
e = (e << 1) + ((e >> i) & 1);
show(e);
e++;
unsigned char f = 2 * e - 2;
show(f);
* [[سوال ۹|سوال بعد]]
* [[سوال ۷|سوال قبل]]