المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:مرحله ی اول:دوره ی ۲۰:سوال ۱۶

سوال ۱۶

بر روی یک عدد ۱۶ بیتی $a_8a_7...a_2a_1$ دو عمل زیر را می‌توانیم انجام دهیم:

  • شیفت: تغییر آن به $a_1a_8a_7...a_3a_2$
  • تبدیل: تغییر آن به $a_8a_7...a_2\overline{a_1}$ که $\overline{x}$ بیت $x$ را اگر ۰ باشد به ۱ و اگر ۱ باشد به ۰ تغییر می‌دهد.

با چند تا از این دو عمل می‌توانیم ۱۰۰۰۰۰۱۰ را به ۱۱۱۱۰۰۰۰ تبدیل کنیم؟

  1. ۵
  2. ۶
  3. ۷
  4. ۸
  5. ۹

پاسخ

گزینه (۱) درست است.

به ترتیب مراحل زیر را طی می‌کنیم:

$$10000010 Not \rightarrow 10000011 Shift \rightarrow 11000001 Shift$$

$$\rightarrow 11100000 Not\rightarrow 11100001 Shift\rightarrow 11110000$$

با ۵ بار انجام عملیات به خواسته‌ی خود رسیدیم و گزینه‌ی کم‌تر از آن هم وجود ندارد.


ابزار صفحه