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

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

روش تبدیل اعداد اعشاری به ممیز ثابت

+1 امتیاز
2,112 نمایش

روش دقیق و توضیحات ذخیره‌سازی اعداد اعشاری به ممیز ثابت در کامپیوتر رو کسی می‌دونه؟

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

1 پاسخ

+2 امتیاز

روش ممیز ثابت یک روش ذخیره‌سازی اعداد اعشاری در کامپیوتر هست. توسط این روش می‌شه اعداد اعشاری رو در متغیرهای صحیح ذخیره کرد.
در روش ممیز ثابت، یک فاکتور بزرگ‌نمایی داریم که از اون برای ذخیره‌سازی اعداد اعشاری استفاده می‌کنیم. مثلاً در مبنای ۱۰ فرض کنید فاکتور بزرگ‌نمایی ۱۰۰۰ باشه.

تبدیل عدد اعشاری به ممیز ثابت

اعداد به صورت زیر در نظر گرفته می‌شن

1 --> 1*1000 = 1000
1.23 --> 1.23*1000 = 1230

حالا فرض کنیم تعداد ارقامی که برای ذخیره‌ی عدد صحیح به دست اومده در دسترس هست محدود باشه. مثلاً برای ذخیره‌سازی عدد صحیح حاصل حداکثر ۵ رقم مجاز باشه. بنابراین

1.232323 --> 1.232323*1000 = 1232.323 ~ 1232

که در نهایت عدد ۱۲۳۲ در نظر گرفته می‌شه. بنابراین ۳ رقم اعشار از دست می‌ره.
بنابراین هنگامی که می‌خواین یک عدد اعشاری رو در روش ممیز ثابت در نظر بگیرین اون رو در فاکتور بزرگ‌نمایی ضرب می‌کنین

تبدیل ممیز ثابت به عدد اعشاری

هنگامی که می‌خواین ببینین یک عدد اعشاری که به صورت ممیز ثابت ذخیره شده در اصل چه عددی بوده اون رو تقسیم بر فاکتور بزرگ‌نمایی می‌کنیم. برای مثال فرض کنین عدد ممیز ثابت ۳۴۵۰ باشه

3450 --> 3450/1000 = 3.45

عملیات در ممیز ثابت

برای جمع و تفریق دو عدد ممیز ثابت، چون به صورت صحیح ذخیره شدند کافی هست که به صورت دو عدد صحیح در نظر گرفته شده و عملیات حسابی روی اون‌ها انجام بشه. برای مثال

x = 2.5 --> 2500;
y = 50 --> 50000;

به صورت ریاضی:

x+y = 52.5;
x-y = 47.5;

در ممیز ثابت

x+y = 52500 --> 52500/1000 = 52.5;
x-y = 47500 --> 47500/1000 = 47.5;

برای ضرب باید یک تقسیم اضافه بر فاکتور بزرگ‌نمایی در نظر گرفته بشه و برای تقسیم یک ضرب در فاکتور بزرگ‌نمایی انجام بشه
به صورت ریاضی:

x*y = 125;
x/y = 20;

در ممیز ثابت

x*y = 125000000/1000 = 125000 --> 125000/1000 = 125;
x/y = 20*1000 = 20000 --> 20000/1000 = 20;

بنابراین عملیات ریاضی به سادگی توسط عملیات عدد صحیح قابل شبیه‌سازی هست.

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