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

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

چه اعداد اعشاری در روش ممیز شناور به صورت دقیق ذخیره می‌شوند؟

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

در روش ذخیره‌سازی اعشاری ممیز شناور بعضی اعداد به صورت دقیق و بعضی دیگه به صورت تقریبی ذخیره می‌شن. کدوم اعداد مطمئناً به صورت دقیق ذخیره می‌شن؟

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

1 پاسخ

+1 امتیاز

توضیح

هر پیاده‌سازی اعداد اعشاری تعداد مشخصی بیت رو برای مانتیس در نظر می‌گیره. مثلاً در عدد اعشاری ۱۶ بیتی ا۰ بیت برای مانتیس در نظر گرفته شده و برای عدد اعشاری ۳۲ بیتی ۲۳ بیت برای مانتیس در نظر گرفته شده.
وقتی عدد اعشاری رو در مبنای ۲ به صورت 1.x می‌نویسیم x ممکنه متناهی باشه یا نامتناهی (مثل عدد پی در ریاضی که اعشارش نامتناهی هست یا ۲.۵ که اعشاری متناهی هست)

بنابراین دو مقدار داریم. تعداد ارقام اعشاری عدد اول در مبنای ۲ و تعداد ارقام مانتیس در استاندارد ذخیره‌سازی مورد استفاده
هر وقت مقدار اول کوچک‌تر یا مساوی مقدار دوم باشه عدد اعشاری دقیق ذخیره می‌شه.

مثال

عدد ۲۳۱.۲۳ در استاندارد ۱۶ بیتی ممیز شناور به صورت زیر ذخیره می‌شه

231.23 = 11100111.00111010...
       = 1.1100111001 11010...

اون تعداد بیت‌هایی که جدا نوشته شده به این دلیل که تعداد بیت‌ها از مانتیس عبور کرده دور ریخته می‌شه و بنابراین عدد اعشاری به صورت تقریبی ذخیره می‌شه.

مثال

عدد اعشاری ۲.۵ در استاندارد ۱۶ بیتی ممیز شناور به صورت زیر ذخیره می‌شه

2.5 = 10.1
    = 1.0100000000

و هیچ رقمی دور ریخته نمی‌شه.

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