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

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

با عرض سلام
دوستان من الگوریتم ضرب بوث و قواعدش رو بلدم، اما این سوال رو مفهومش رو نمی فهمم. توی پاسخ نامه ی مدرسان گفته که :
در مرحله ی اول عمل تفریق انجام شده، از کجا این حرف رو زده ؟
با سپاس

RE: مهندسی فناوری اطلاعات - سال ۸۴ - signal_micro - 02 اسفند ۱۳۹۵ ۰۳:۲۵ ب.ظ

(۳۰ بهمن ۱۳۹۵ ۰۹:۲۱ ب.ظ)alimamala نوشته شده توسط:  با عرض سلام
دوستان من الگوریتم ضرب بوث و قواعدش رو بلدم، اما این سوال رو مفهومش رو نمی فهمم. توی پاسخ نامه ی مدرسان گفته که :
در مرحله ی اول عمل تفریق انجام شده، از کجا این حرف رو زده ؟
با سپاس
چرا بچه ها تا حالا جواب ندادن!
اگه یادت باشه عددی مثل ۰۰۱۱۱۰ که میشه ۱۴ یا به عبارتی [tex]2^4-2^1[/tex] یعنی یه جورایی میتونی قرارداد کنی هر وقت به ۱۰رسیدیم منفی ۲ به توان اون مرتبه مینویسیم هروقت ۰۱ دیدیم مثبت ۲ به توان همون مرتبه مثلا عدد [tex]11011011=-2^0+2^2-2^3+2^5-2^6[/tex] هست (دقت کن بیت ابتدای سمت راست رو صفر در نظر بگیر)
حالا با این معلومات میشه ۲ تا عدد رو درهم ضرب کرد عوض اینکه تو عدد دوم ببینیم هر جا ۱ بود عدد اول رو بنویسیم و هرجا صفر بود ۰ بنویسیم و همه رو باهم جمع کنیم هر جا ۱۰ دیدیم منفی اون عدد اول رو مینویسیم که در اینجا میبینی عدد اول رو مکمل کرده گسترش علامت داده(وقتی شیفت به چپ میدیم و جمع میکنیم انگار ضرب در ۲ به توان همان مرتبه کردیم دیگه) اگر درعدد دوم تغییری در بیتها نبود مثلا ۱ یا ۰ بود با صفر جمع میکنیم اگر هم ۰۱ دیدیم که با اون عدد اول رو مینویسیم و همه رو با هم میکنیم
حالا تست رو نگاه کن: اینجا میگه عدد دوم Y چی میتونست باشه؟ عبارت اول جمع مکمل عدد اول رو گرفت گسترش داد پس ۱۰ بود(بهتر بگیم ۱ بود) دومین عبارت خود عدده پس ۰۱ مینویسیم عبارت بعدی کلا صفر یعنی بیت قبلی تکرار شد(بیت ۰) ادامه بدی میرسی به ۱۰۱۰۰۱ میشه "-۲۳"

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

خیلی خیلی لطف کردی دوست عزیز. با سپاس فراوان