اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

نوع داده‌ی صحیح ۸ بایتی در پردازنده‌ی ۳۲ بیتی

0 امتیاز
336 نمایش

روش پیاده‌سازی دستورات عملیات جمع و ضرب روی دو داده‌ی ۶۴ بیتی که روی پردازنده‌ی ۳۲ بیتی قرار گرفتن چطوریه؟

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده پنجشنبه ۱۵ فروردین ۱۳۹۲ در C++ توسط prodo  

1 پاسخ

0 امتیاز

روش کار به صورت دوبار انتقال و انجام عملیات روی ۴ بایت‌های سمت راست و چو به ترتیب هست. ابتدا ۴ بایت سمت راست (کم‌اهمیت‌تر) به پردازنده منتقل شده و عملیات ضرب یا جمع انجام می‌شه. سربار تولید شده در مکانی ذخیره می‌شه. بعد ۴ بایت سمت چپ (پراهمیت‌تر) به پردازنده ارسال می‌شه و همراه سربار تولید شده در مرحله‌ی قبلی ادامه‌ی عملیات ضرب و جمع انجام می‌شه.

int64_t x = a1-a2-a3-a4;
int64_t y = b1-b2-b3-b4;
int32_t r = (a3-a4)*(b3-b4) سربار حاصل از;
int32_t d = (a3-a4)*(b3-b4) که با حذف سربار معادل (a3-a4)*(b3-b4) % (2^32) هست.
x*y = ((a1-a2)*(b1-b2) + r) << (2^32) + d;

توسط این شبه کد می‌شه بهتر همه چی رو درک کرد

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده جمعه ۷ تیر ۱۳۹۲ توسط prodo