تالار گفتمان مانشت

نسخه‌ی کامل: ضرب (6-)*13 به روش booth ?
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
لطفا روش بوث رو به صورت مشرح با حل این مثال توضیح دهید (۶-)*۱۳
با سپاس
برای ضرب عدد B در Q که هر کدام ۵ بیتی می باشد، به ۱۰ بیت نیاز است که معمولا جواب به صورت A:Q در نظر گرفته میشه.
شما برای ضرب -۱۳ در ۶ دقت کنید که مکمل ۲ اونها رو به درستی حساب کنید. حالا از عدد دوم فقط جمع یا تفریق رو متوجه میشیم یعنی اگه اول ۰ و بعد ۱ دیدیم باید B رو تفریق کنیم و سپس ASHR میدیم و یا اگه ۰۱ دیدیم باید B رو جمع کنیم و سپس ASHRدر غیر اینصورت فقط شیفت به راست میدیم .(همون ASHR)
تو روش عادی که روی کاغذ انجام میدیم شبیه شکلی که ضمیمه کردم، آخرین بیت چپ اگر یک بود ، اون رو گسترش میدیم .
تشکر بابت توضیحات کامل و مشروحتون Blush
من کلا با این مبحث آشنایی ندارم . وقتی میگید اگر اول 0بود بعد 1تفریق یا اول 1 بعد 0 جمع میکنیم منظورتون دقیقا چی هست ، چی رو از چی کم میکنیم؟!
ببخشید بابت سوال مبتدیانه Big Grin
(26 دى 1393 03:17 ب.ظ)falcon7 نوشته شده توسط: [ -> ]تشکر بابت توضیحات کامل و مشروحتون Blush
من کلا با این مبحث آشنایی ندارم . وقتی میگید اگر اول ۰بود بعد ۱تفریق یا اول ۱ بعد ۰ جمع میکنیم منظورتون دقیقا چی هست ، چی رو از چی کم میکنیم؟!
ببخشید بابت سوال مبتدیانه Big Grin

نیاز به عذرخواهی نیست! سواله دیگه واسه همه پیش میاد.
ببین اساس ضرب بوث به این صورته که عدد اول (این جا یعنی 13) باید با خودش جمع و یا تفریق بشه. و همین طور در هر مرحله شیفت حسابی بدیم.
حالا سوال اینه که از کجا بفهمیم جمع یا تفریق؟
جمع یا تفریق رو باید از تغییر بیت های ضرب کننده (یعنی عدد دوم) این جا 6 تشخیص بدیم. اول عدد -6 رو درسیستم مکمل 2 مینویسیم که میشه 11010 در سمت راست اون یه بیت فرضی رو صفر در نظر میگیریم، چون اولین بیت عدد 0 هست ، 00000 رو برای جمع می نویسیم ، در مرحله بعد چون بیت دوم 1 هست، یعنی از 0 به 1 رسیدیم، باید تفریق کنیم، یعنی -13 که در مکمل دو میشه : 10011
دقت کنید که مثل ضرب عادی که در هر مرحله برای جمع یه رقم میریم سمت چپ و جمع ها رو انجام میدیم ، اینجا هم -13 رو یه رقم سمت چپ میریم و می نویسیم و دقت کنید که رقم آخر سمت چپ 1 هست و باید اون رو گسترش بدیم (یعنی سمت چپ یک اضافه کنیم)
حالا بیت سوم 0 هست و چون بیت دوم 1 بوده، این جا جمع داریم یعنی + 13 که میشه 01101 بازم این عدد رو یه رقم سمت چپ میریم و مینویسم (این رفتن به سمت چپ همون شیفت هست! Big Grin)
بیت چهارم 1 هست و دوباره تفریق داریم. چون از 0 به 1 رفتیم
بیت پنجم 1 هست و چون بیت قبلی 1 بوده و تغییر بیت نداریم با صفر جمع میشه (فقط شیفت داریم)
(26 دى 1393 04:07 ب.ظ)ana9940 نوشته شده توسط: [ -> ]
(26 دى 1393 03:17 ب.ظ)falcon7 نوشته شده توسط: [ -> ]تشکر بابت توضیحات کامل و مشروحتون Blush
من کلا با این مبحث آشنایی ندارم . وقتی میگید اگر اول ۰بود بعد ۱تفریق یا اول ۱ بعد ۰ جمع میکنیم منظورتون دقیقا چی هست ، چی رو از چی کم میکنیم؟!
ببخشید بابت سوال مبتدیانه Big Grin

نیاز به عذرخواهی نیست! سواله دیگه واسه همه پیش میاد.
ببین اساس ضرب بوث به این صورته که عدد اول (این جا یعنی ۱۳) باید با خودش جمع و یا تفریق بشه. و همین طور در هر مرحله شیفت حسابی بدیم.
حالا سوال اینه که از کجا بفهمیم جمع یا تفریق؟
جمع یا تفریق رو باید از تغییر بیت های ضرب کننده (یعنی عدد دوم) این جا ۶ تشخیص بدیم. اول عدد -۶ رو درسیستم مکمل ۲ مینویسیم که میشه ۱۱۰۱۰ در سمت راست اون یه بیت فرضی رو صفر در نظر میگیریم، چون اولین بیت عدد ۰ هست ، ۰۰۰۰۰ رو برای جمع می نویسیم ، در مرحله بعد چون بیت دوم ۱ هست، یعنی از ۰ به ۱ رسیدیم، باید تفریق کنیم، یعنی -۱۳ که در مکمل دو میشه : ۱۰۰۱۱
دقت کنید که مثل ضرب عادی که در هر مرحله برای جمع یه رقم میریم سمت چپ و جمع ها رو انجام میدیم ، اینجا هم -۱۳ رو یه رقم سمت چپ میریم و می نویسیم و دقت کنید که رقم آخر سمت چپ ۱ هست و باید اون رو گسترش بدیم (یعنی سمت چپ یک اضافه کنیم)
حالا بیت سوم ۰ هست و چون بیت دوم ۱ بوده، این جا جمع داریم یعنی + ۱۳ که میشه ۰۱۱۰۱ بازم این عدد رو یه رقم سمت چپ میریم و مینویسم (این رفتن به سمت چپ همون شیفت هست! Big Grin)
بیت چهارم ۱ هست و دوباره تفریق داریم. چون از ۰ به ۱ رفتیم
بیت پنجم ۱ هست و چون بیت قبلی ۱ بوده و تغییر بیت نداریم با صفر جمع میشه (فقط شیفت داریم)

الان فهمیدم چی شد Big Grin خیلی عالی توضیح دادید. ممنونHeartSmile
لینک مرجع