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

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

تفاوت دو استاندارد ذخیره‌ی اعداد اعشاری

+1 امتیاز
137 نمایش

من خونده بودم که اعداد اعشاری به شکل m*2^p ذخیره می‌شن که m مانتیس بین ۰ و ۱ و p توانی هست که با عدد ۶۴ جمع می‌شه.
اما در عمل در کامپیوتر من مانتیس به صورت 1.m قرار می‌گیره (یعنی یک عدد ۱.۰ باهاش جمع می‌شه) و توان با ۱۲۷ جمع می‌شه.
این دو روش دو استاندارد هستند؟ یا تفاوت‌شون به پیاده‌سازی زبان یا کامپایلر برمی‌گرده؟

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

1 پاسخ

0 امتیاز

در C++ داده‌های اعشاری از استاندارد ieee754 استفاده می‌کنن. در این روش وقتی می‌خوایم یه عدد اعشاری رو ذخیره کنیم عدد رو در مبنای دو می‌نویسیم و بعد ممیز رو به تعدادی شیفت می‌دیم که به صورت 1.m باشه. مثلاً

x = 23.25 = (11001.01)_bin = (1.100101)_bin * 2^4

حالا وقتی که می‌خوایم در کامپیوتر ذخیره کنیم فقط قسمت m رو ذخیره می‌کنیم. بعدش که می‌خوایم بخونیم باز دوباره یه دونه 1 به اول m اضافه می‌کنیم.

این پیوند رو ببینین

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