521 lines
7.8 KiB
Markdown
521 lines
7.8 KiB
Markdown
حل تمرینهای زوج فصل ۱:
|
||
|
||
## ۱-۲
|
||
|
||
با فرض رایج `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 |
|