From bfb0532460293816bf3437983402a6dda229641f Mon Sep 17 00:00:00 2001 From: RadinPirouz Date: Mon, 18 May 2026 23:22:51 +0330 Subject: [PATCH] 1 --- 1.md | 520 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 520 insertions(+) create mode 100644 1.md diff --git a/1.md b/1.md new file mode 100644 index 0000000..3e6ddeb --- /dev/null +++ b/1.md @@ -0,0 +1,520 @@ +حل تمرین‌های زوج فصل ۱: + +## ۱-۲ + +با فرض رایج `K = 2^10` و `M = 2^20`: + +الف) +`32K = 32 × 1024 = 32768` بایت + +ب) +`64M = 64 × 2^20 = 67108864` بایت + +پ) برای `6.4G` دو برداشت رایج وجود دارد: +اگر `G = 10^9` باشد: +`6.4G = 6400000000` بایت + +اگر `G = 2^30` باشد: +`6.4 × 2^30 = 6871947673.6` که برای تعداد دقیق بایت عدد صحیح نمی‌شود؛ تقریباً `6871947674` بایت. + +--- + +## ۱-۴ + +الف) +`(4310)_5 = 4×5^3 + 3×5^2 + 1×5 + 0 = 580` + +ب) +`(198)_12 = 1×12^2 + 9×12 + 8 = 260` + +--- + +## ۱-۶ + +معادله در مبنای `r` است: + +`x^2 - 11x + 22 = 0` + +ریشه‌ها `3` و `6` هستند. پس: + +جمع ریشه‌ها: +`3 + 6 = 9` + +در نتیجه: +`(11)_r = r + 1 = 9` + +پس: +`r = 8` + +کنترل با حاصل‌ضرب: +`3 × 6 = 18` + +و: +`(22)_8 = 2×8 + 2 = 18` + +پس مبنا برابر است با: + +`8` + +--- + +## ۱-۸ + +الف) +`(1.11010)_2` + +به مبنای ۱۶: +`1.11010₂ = 1.D0₁₆ = 1.D₁₆` + +به ده‌دهی: +`1 + 1/2 + 1/4 + 1/16 = 1.8125` + +پس: +`(1.11010)_2 = (1.D)_16 = (1.8125)_10` + +ب) +`(1110.10)_2` + +به مبنای ۱۶: +`1110.10₂ = E.8₁₆` + +به ده‌دهی: +`14 + 1/2 = 14.5` + +علت اینکه جواب قسمت ب، ۸ برابر قسمت الف است: +عدد قسمت ب همان عدد قسمت الف است که ممیز دودویی آن ۳ رقم به راست رفته است؛ پس در `2^3 = 8` ضرب شده است. + +--- + +## ۱-۱۰ + +عدد ده‌دهی `345`: + +روش مستقیم به دودویی: + +`345 = 256 + 64 + 16 + 8 + 1` + +پس: + +`345₁₀ = 101011001₂` + +روش از طریق مبنای ۱۶: + +`345₁₀ = 159₁₆` + +و: + +`1 5 9 = 0001 0101 1001` + +پس: + +`345₁₀ = 101011001₂` + +روش دوم سریع‌تر است، چون هر رقم شانزدهی مستقیم به ۴ بیت تبدیل می‌شود. + +--- + +## ۱-۱۲ + +الف) اعداد دودویی `101` و `1011` + +جمع: + +`101 + 1011 = 10000` + +ضرب: + +`101 × 1011 = 110111` + +ب) اعداد شانزدهی `2E` و `34` + +جمع: + +`2E + 34 = 62` + +ضرب: + +`2E × 34 = 958` + +پس: + +`(2E)_16 + (34)_16 = (62)_16` +`(2E)_16 × (34)_16 = (958)_16` + +--- + +## ۱-۱۴ + +متمم‌های ۹ و ۱۰: + +| عدد | متمم ۹ | متمم ۱۰ | +| ---------- | ---------- | ---------- | +| `98127634` | `01872365` | `01872366` | +| `72049900` | `27950099` | `27950100` | +| `10000000` | `89999999` | `90000000` | +| `00000000` | `99999999` | `00000000` | + +--- + +## ۱-۱۶ + +متمم ۱ و متمم ۲ اعداد دودویی: + +| عدد | متمم ۱ | متمم ۲ | +| ---------- | ---------- | ---------- | +| `11101010` | `00010101` | `00010110` | +| `01111110` | `10000001` | `10000010` | +| `00000001` | `11111110` | `11111111` | +| `10000000` | `01111111` | `10000000` | +| `00000000` | `11111111` | `00000000` | + +--- + +## ۱-۱۸ + +تفریق با استفاده از متمم ۲: + +الف) +`11011 - 11001` + +اختلاف: + +`00010` + +ب) +`110100 - 10101` + +ابتدا هم‌طول می‌کنیم: + +`110100 - 010101 = 011111` + +پ) +`1011 - 110000` + +هم‌طول: + +`001011 - 110000` + +چون عدد اول کوچک‌تر است، نتیجه منفی می‌شود: + +`1011₂ - 110000₂ = -100101₂` + +ت) +`101010 - 101011 = -1` + +پس: + +`-000001₂` + +--- + +## ۱-۲۰ + +برای نمایش `+61` و `+27` در متمم ۲، حداقل ۷ بیت لازم است، چون بازه ۷ بیتی در متمم ۲ برابر است با: + +`-64` تا `+63` + +نمایش‌ها: + +| عدد | نمایش ۷ بیتی متمم ۲ | +| ----- | ------------------- | +| `+61` | `0111101` | +| `+27` | `0011011` | +| `-61` | `1000011` | +| `-27` | `1100101` | + +اکنون عملیات‌ها: + +الف) +`(+61) + (-27) = 34` + +`0111101 + 1100101 = 0100010` + +پس: + +`0100010₂ = 34₁₀` + +ب) +`(+27) + (-61) = -34` + +`0011011 + 1000011 = 1011110` + +پس: + +`1011110₂ = -34₁₀` + +پ) +`(-27) + (-61) = -88` + +عدد `-88` در ۷ بیت قابل نمایش نیست، چون از بازه `-64` تا `+63` خارج است. بنابراین سرریز رخ می‌دهد. + +ت) +`(-27) + (+61) = 34` + +`1100101 + 0111101 = 0100010` + +پس: + +`0100010₂ = 34₁₀` + +--- + +## ۱-۲۲ + +نمایش BCD: + +`965 = 1001 0110 0101` + +`672 = 0110 0111 0010` + +جمع BCD: + +یکان: + +`0101 + 0010 = 0111` + +دهگان: + +`0110 + 0111 = 1101` + +چون `1101` بزرگ‌تر از ۹ است، `0110` اضافه می‌کنیم: + +`1101 + 0110 = 1 0011` + +پس رقم دهگان `0011` و یک نقلی داریم. + +صدگان: + +`1001 + 0110 + 1 = 10000` + +تصحیح BCD: + +`10000 + 0110 = 1 0110` + +پس جواب نهایی: + +`0001 0110 0011 0111` + +یعنی: + +`965 + 672 = 1637` + +--- + +## ۱-۲۴ + +عدد ده‌دهی: + +`6027` + +الف) کد BCD: + +`6 = 0110` +`0 = 0000` +`2 = 0010` +`7 = 0111` + +پس: + +`6027 = 0110 0000 0010 0111` + +ب) کد افزونی ۳: + +هر رقم را با ۳ جمع می‌کنیم: + +`6 + 3 = 9 → 1001` +`0 + 3 = 3 → 0011` +`2 + 3 = 5 → 0101` +`7 + 3 = 10 → 1010` + +پس: + +`6027 = 1001 0011 0101 1010` + +پ) کد ۲۴۲۱: + +طبق جدول کد ۲۴۲۱: + +`6 = 1100` +`0 = 0000` +`2 = 0010` +`7 = 1101` + +پس: + +`6027 = 1100 0000 0010 1101` + +--- + +## ۱-۲۶ + +برای ۵۲ کارت، حداقل تعداد بیت لازم: + +`2^5 = 32 < 52` +`2^6 = 64 ≥ 52` + +پس ۶ بیت کافی است. + +یک روش مناسب: + +۲ بیت برای خال کارت: + +| خال | کد | +| --- | ---- | +| خاج | `00` | +| خشت | `01` | +| دل | `10` | +| پیک | `11` | + +۴ بیت برای شماره کارت: + +| کارت | کد | +| ---- | ------ | +| A | `0001` | +| 2 | `0010` | +| 3 | `0011` | +| 4 | `0100` | +| 5 | `0101` | +| 6 | `0110` | +| 7 | `0111` | +| 8 | `1000` | +| 9 | `1001` | +| 10 | `1010` | +| J | `1011` | +| Q | `1100` | +| K | `1101` | + +پس کد هر کارت برابر است با: + +`کد خال + کد شماره کارت` + +مثلاً اگر پیک را `11` و K را `1101` بگیریم: + +`K پیک = 111101` + +--- + +## ۱-۲۸ + +کدهای ASCII داده‌شده به حروف تبدیل می‌شوند: + +`1001010 = J` +`1100001 = a` +`1101110 = n` +`1100101 = e` +`0100000 = Space` +`1000100 = D` +`1101111 = o` +`1100101 = e` + +پس رشته برابر است با: + +`Jane Doe` + +--- + +## ۱-۳۰ + +در ASCII استاندارد ۷ بیتی، کاراکترهای قابل چاپ از کد `32` تا `126` هستند. + +تعدادشان: + +`126 - 32 + 1 = 95` + +از این ۹۵ کاراکتر: + +حروف: +`26 + 26 = 52` + +ارقام: +`10` + +پس کاراکترهای خاص: + +`95 - 52 - 10 = 33` + +بنابراین: + +تعداد کاراکترهای چاپی: `95` +تعداد کاراکترهای خاص: `33` + +اگر فاصله را کاراکتر چاپی حساب نکنند، جواب‌ها به‌ترتیب `94` و `32` می‌شوند. + +--- + +## ۱-۳۲ + +حالت ثبات ۱۲ بیتی: + +`100010010111` + +آن را به سه گروه ۴ بیتی تقسیم می‌کنیم: + +`1000 1001 0111` + +الف) اگر BCD باشد: + +`1000 = 8` +`1001 = 9` +`0111 = 7` + +پس: + +`897` + +ب) اگر کد افزونی ۳ باشد، از هر رقم ۳ کم می‌کنیم: + +`1000 = 8 → 8 - 3 = 5` +`1001 = 9 → 9 - 3 = 6` +`0111 = 7 → 7 - 3 = 4` + +پس: + +`564` + +پ) اگر کد `8-4-(-2)-(-1)` باشد: + +`1000 = 8` +`1001 = 7` +`0111 = 1` + +پس: + +`871` + +ت) اگر یک عدد دودویی باشد: + +`100010010111₂ = 897₁₆` + +و: + +`897₁₆ = 2199₁₀` + +پس مقدار ده‌دهی آن: + +`2199` + +--- + +## ۱-۳۴ + +برای گیت AND سه‌ورودی: + +`F = A.B.C` + +برای گیت OR سه‌ورودی: + +`G = A + B + C` + +جدول درستی: + +| A | B | C | F = ABC | G = A+B+C | +| - | - | - | ------- | --------- | +| 0 | 0 | 0 | 0 | 0 | +| 0 | 0 | 1 | 0 | 1 | +| 0 | 1 | 0 | 0 | 1 | +| 0 | 1 | 1 | 0 | 1 | +| 1 | 0 | 0 | 0 | 1 | +| 1 | 0 | 1 | 0 | 1 | +| 1 | 1 | 0 | 0 | 1 | +| 1 | 1 | 1 | 1 | 1 |