تالار گفتمان مانشت
مهندسی فناوری اطلاعات - سراسری ۸۹ - نسخه‌ی قابل چاپ

مهندسی فناوری اطلاعات - سراسری ۸۹ - ali.majed.ha - 30 بهمن ۱۳۹۵ ۰۲:۳۸ ب.ظ

با عرض سلام
من هرچقدر تلاش کردم نتونستم این سوال رو جواب بدم. توی کتاب مدرسان هم در موردش یک خط کوتاه نوشته، من متوجه نشدم. منظور این سوال همون استاندارد IEEE هست ؟ من با این روش رفتم، جوابی که بدست آوردم توی گزینه ها نبود. می شه لطفا راهنمایی بفرمایید.
با سپاس فراوان

RE: مهندسی فناوری اطلاعات - سراسری ۸۹ - Pure Liveliness - 30 بهمن ۱۳۹۵ ۰۵:۵۵ ب.ظ

این سؤال چند اشتباه چاپی داره.

اولاً اون [tex]b_i2^{24-i}[/tex] باید به صورت [tex]b_i2^{i-24}[/tex] باشه، چون در حالت اول توانِ ۲ ممکنه منفی بشه که درست نیست برای نما. چون مثلاً اگه [tex]b_{25}[/tex] یک باشه، [tex]2^{24-25}=2^{-1}=0.5[/tex] در نما خواهیم داشت و دقت کنید که یه ۲ هم قرار هست به توان این برسه، یعنی [tex]2^{0.5}[/tex] که میشه رادیکال دو و اشتباه هست. در کل، نما باید عدد صحیح تولید کنه.

ضمناً [tex]i-24[/tex] هم نباید باشه و [tex]i-23[/tex] صحیح هست. چون اگه ۲۴ باشه، هفت بیت اختصاص پیدا کرده که هیچ وقت نما مثبت نمیشه و عدد بزرگتر دو نمیشه تولید کرد. پس باید ۸ بیت اختصاص پیدا کنه که در این صورت اگه بیت هشتم (پر ارزش) یعنی [tex]b_{30}[/tex] برابر با یک باشه، یه [tex]2^{2^7}[/tex] ایجاد میشه که اون [tex]-127[/tex] رو خنثی میکنه.

خب تا الان متوجه شدیم که اون سیگمای اولی باید از i=23 باشه و توان هم به صورت [tex]i-23[/tex] هست.

از اونجایی که عددمون ۲/۰۶۲۵ هست و قسمت اعشاری از ۱ بزرگتر هست (منظورم [tex]1+\sum_{i=0}^{22}[/tex] هست) و البته از ۲ کمتر هست، نما باید ۱ باشه که ۲ رو بسازه، اون قسمت اعشاری هم [tex]\frac{2.0625}{2}=1.03125[/tex] رو میسازه که البته ۱ رو خودش داره و ۰/۰۳۱۲۵ برای سیگماش میمونه.
ضمناً چون عدد مثبت هست، [tex]b_{31}=0[/tex] هست پس گزینه‌های ۳ و ۴ حذف میشه. برای اینکه نما ۱ بشه، باید اون سیگمای اول ۱۲۸ رو بسازه و چون ۸ بیت داره، کافی هست بیت پرازشش ۱ باشه و بقیه ۰ تا ۱۲۸ بشه، یعنی [tex]b_{30}b_{29}...b_{23}=1000000[/tex] و چون [tex]b_{31}[/tex] هم صفر هست، ۹ بیت اول میشه ۰۱۰۰,۰۰۰۰,۰/ از همینجا میشه فهمید که گزینه‌ی ۱ درست هست. هر دو گزینه‌ی ۱ و ۲ با ۴۰ شروع میشن که درسته، ولی چون بیت ۹ اینجا صفر هست، باعث میشه که رقم هگز سوم از ۸ کمتر باشه در حالی که گزینه‌ی دو C هست که به صورت ۱۱۰۱ هست در حالی که رقم ۹ باید صفر باشه طبق چیزی که بالا بدست آوردیم (برای ساختن ۱۲۸).

برای حل کامل هم، گفتیم که [tex]2.0625=2^1\times(1+0.03125)[/tex]. عدد ۰/۰۳۱۲۵ هم برابر با [tex]2^{-5}[/tex] هست. پس چهار بیت اول برای اعشار باید ۰ باشند (که به ترتیب [tex]2^{-1}[/tex] تا [tex]2^{-4}[/tex] رو می‌سازند) و بیت پنجم اعشار باید ۱ باشه. یعنی [tex]b_{22}[/tex] تا [tex]b_{19}[/tex] باید ۰ باشند و [tex]b_{18}[/tex] باید ۱ باشه.
پس بیت‌ها اینطوری میشه:
[tex]0,10000000,0000100...[/tex]
که اولی بیت علامت، ۸تای بعدی بیت نما، و ۲۳تای بعدی بیت اعشار هستند و جواب میشه ۴۰۰۴۰۰۰H

در کل با توجه به بیت علامت گزینه‌های ۳ و ۴ فوری حذف می‌شدند، و چون قسمت اعشار مقدار کوچیکی داشت (۰/۰۳۱۲۵) می‌شد متوجه شد که گزینه‌ی هم نیست چون اعشار بزرگی می‌سازه (البته به شرطی که صورت تست غلط نبود).

RE: مهندسی فناوری اطلاعات - سراسری ۸۹ - ali.majed.ha - 30 بهمن ۱۳۹۵ ۰۹:۰۹ ب.ظ

(۳۰ بهمن ۱۳۹۵ ۰۵:۵۵ ب.ظ)Pure Liveliness نوشته شده توسط:  این سؤال چند اشتباه چاپی داره.

اولاً اون [tex]b_i2^{24-i}[/tex] باید به صورت [tex]b_i2^{i-24}[/tex] باشه، چون در حالت اول توانِ ۲ ممکنه منفی بشه که درست نیست برای نما. چون مثلاً اگه [tex]b_{25}[/tex] یک باشه، [tex]2^{24-25}=2^{-1}=0.5[/tex] در نما خواهیم داشت و دقت کنید که یه ۲ هم قرار هست به توان این برسه، یعنی [tex]2^{0.5}[/tex] که میشه رادیکال دو و اشتباه هست. در کل، نما باید عدد صحیح تولید کنه.

ضمناً [tex]i-24[/tex] هم نباید باشه و [tex]i-23[/tex] صحیح هست. چون اگه ۲۴ باشه، هفت بیت اختصاص پیدا کرده که هیچ وقت نما مثبت نمیشه و عدد بزرگتر دو نمیشه تولید کرد. پس باید ۸ بیت اختصاص پیدا کنه که در این صورت اگه بیت هشتم (پر ارزش) یعنی [tex]b_{30}[/tex] برابر با یک باشه، یه [tex]2^{2^7}[/tex] ایجاد میشه که اون [tex]-127[/tex] رو خنثی میکنه.

خب تا الان متوجه شدیم که اون سیگمای اولی باید از i=23 باشه و توان هم به صورت [tex]i-23[/tex] هست.

از اونجایی که عددمون ۲/۰۶۲۵ هست و قسمت اعشاری از ۱ بزرگتر هست (منظورم [tex]1+\sum_{i=0}^{22}[/tex] هست) و البته از ۲ کمتر هست، نما باید ۱ باشه که ۲ رو بسازه، اون قسمت اعشاری هم [tex]\frac{2.0625}{2}=1.03125[/tex] رو میسازه که البته ۱ رو خودش داره و ۰/۰۳۱۲۵ برای سیگماش میمونه.
ضمناً چون عدد مثبت هست، [tex]b_{31}=0[/tex] هست پس گزینه‌های ۳ و ۴ حذف میشه. برای اینکه نما ۱ بشه، باید اون سیگمای اول ۱۲۸ رو بسازه و چون ۸ بیت داره، کافی هست بیت پرازشش ۱ باشه و بقیه ۰ تا ۱۲۸ بشه، یعنی [tex]b_{30}b_{29}...b_{23}=1000000[/tex] و چون [tex]b_{31}[/tex] هم صفر هست، ۹ بیت اول میشه ۰۱۰۰,۰۰۰۰,۰/ از همینجا میشه فهمید که گزینه‌ی ۱ درست هست. هر دو گزینه‌ی ۱ و ۲ با ۴۰ شروع میشن که درسته، ولی چون بیت ۹ اینجا صفر هست، باعث میشه که رقم هگز سوم از ۸ کمتر باشه در حالی که گزینه‌ی دو C هست که به صورت ۱۱۰۱ هست در حالی که رقم ۹ باید صفر باشه طبق چیزی که بالا بدست آوردیم (برای ساختن ۱۲۸).

برای حل کامل هم، گفتیم که [tex]2.0625=2^1\times(1+0.03125)[/tex]. عدد ۰/۰۳۱۲۵ هم برابر با [tex]2^{-5}[/tex] هست. پس چهار بیت اول برای اعشار باید ۰ باشند (که به ترتیب [tex]2^{-1}[/tex] تا [tex]2^{-4}[/tex] رو می‌سازند) و بیت پنجم اعشار باید ۱ باشه. یعنی [tex]b_{22}[/tex] تا [tex]b_{19}[/tex] باید ۰ باشند و [tex]b_{18}[/tex] باید ۱ باشه.
پس بیت‌ها اینطوری میشه:
[tex]0,10000000,0000100...[/tex]
که اولی بیت علامت، ۸تای بعدی بیت نما، و ۲۳تای بعدی بیت اعشار هستند و جواب میشه ۴۰۰۴۰۰۰H

در کل با توجه به بیت علامت گزینه‌های ۳ و ۴ فوری حذف می‌شدند، و چون قسمت اعشار مقدار کوچیکی داشت (۰/۰۳۱۲۵) می‌شد متوجه شد که گزینه‌ی هم نیست چون اعشار بزرگی می‌سازه (البته به شرطی که صورت تست غلط نبود).

دوست عزیز، از راهنمایی کامل و جامعتون بسیار سپاسگزارم. خیلی لطف کردید. خیلی روان و مفهومی حل کردید.