Files
temp/1.md
RadinPirouz bfb0532460 1
2026-05-18 23:22:51 +03:30

521 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
حل تمرین‌های زوج فصل ۱:
## ۱
با فرض رایج `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 |