You can edit almost every page by Creating an account. Otherwise, see the FAQ.

فرمت ممیز شناور با دقت یگانه

از EverybodyWiki Bios & Wiki
پرش به:ناوبری، جستجو

فرمت ممیز شناور با دقت یگانه یک فرمت شماره کامپیوتر است که معمولا 32 بیت را در حافظه کامپیوتر اشغال می کند . این فرمت یک دامنه دینامیک از مقادیر عددی را با استفاده از یک ممیز شناور نشان می دهد .

یک متغیر ممیز شناور می تواند طیف گسترده تری از اعداد را نسبت به یک متغیر ممیز ثابت با همان عرض بیت به هزینه دقت نشان دهد. امضا 32 بیتی عدد صحیح متغیر یک مقدار حداکثر از 2 31 - 1 = 2147483647، در حالی که یک IEEE 754 32 بیتی پایه 2 متغیر ممیز شناور است یک مقدار حداکثر از (2 - 2 -23) × 2 127 ≈ 3.402823 × 10 38 . تمام اعداد صحیح با 6 یا کمتر رقم اعشار قابل توجهی ، و به هر تعداد که می تواند به عنوان 2 نفر به طوری که n یک عدد کل از -126 تا 127 است نوشته شده است، می تواند به یک IEEE ارزش 754 ممیز شناور بدون از دست دادن دقت تبدیل شده است.

در IEEE 754-2008 استاندارد ، 32 بیتی با فرمت پایه 2 به طور رسمی به عنوان binary32 اشاره؛ آن را تک در IEEE 754-1985 نامیده می شود . IEEE 754 نوع اضافی شناور را مشخص می کند، مانند دوبعدی 64 بیتی پایه 2 و اخیرا بازپخش پایه 10.

یکی از اولین زبان های برنامه نویسی که ممیز شناور با دقت های یگانه و دوگانه را ارائه داد فورترن بود. قبل از تصویب گسترده ی IEEE 754-1985، نمایش و ویژگی های انواع داده های ممیز شناور به تولید کننده ی کامپیوتر و مدل رایانه و تصمیمات طراحان زبان برنامه نویسی بستگی داشت.

IEEE 754 یکپارچه فرمت نقطه شناور باینری: binary32[ویرایش]

استاندارد IEEE 754 یک binary32 را به صورت زیر تعریف می کند:

این استاندارد، مانند فرمت ممیز شناور با دقت نصف 16 بیتی، از سری فرمت IEEE 754 پیروی نمی کند، که در نتیجه می تواند یک نمای 7 بیتی داشته باشد، برخلاف استاندارد که 8 بیت بود.

این از 6 تا 9 رقمی دقت قابل توجهی را می دهد. اگر یک رشته اعشاری با حداکثر 6 رقم قابل توجه به نمایندگی دقیق IEEE 754 تبدیل شود و سپس به یک رقم اعشار با همان تعداد رقم تبدیل شود، نتیجه نهایی باید با رشته اصلی منطبق باشد. اگر یک شماره دقیق IEEE 754 به یک رشته اعشاری با حداقل 9 رقم قابل توجه تبدیل شود و سپس به نمایندگی تک دقت تبدیل شود، نتیجه نهایی باید با شماره اصلی اصلی مطابقت داشته باشد. [۱]

علامت شماره نشانگر عدد را نشان می دهد که علامت اهمیت و همچنین علامت است. عنصر عبارت است از عدد صحیح عدد 8 بیتی از -128 تا 127 ( مکمل 2 ) یا یک عدد صحیح بدون علامت 8 بیتی از 0 تا 255، که فرم بی توجهی پذیرفته شده در تعریف IEEE 754 binary32 است. اگر از فرمت عدد صحیح بدون علامت استفاده شده است، مقدار نمایش دهنده مورد استفاده در محاسبات، نمایش داده شده توسط یک تغییر محاط شده است - برای پرونده IEEE 754 binary32، مقدار نمایشگر 127 نشان دهنده صفر واقعی است (یعنی برای 2 تا e − 127 به یک، باید 127 باشد). متغیرها از 126 به 127 متغیر هستند، زیرا نمایندگان -127 (همه 0s) و +128 (همه 1s) برای تعداد خاصی رزرو می شوند.

معنادار واقعی و شامل 23 بیت کسری به سمت راست دودویی و یک بیت پیشنهادی ضمنی (به سمت چپ نقطه دودویی) با مقدار 1، مگر اینکه نماینده با تمام صفرها ذخیره شود. بنابراین فقط 23 قطعه بیت معنی دار و در فرمت حافظه ظاهر می شود، اما دقت کامل 24 بیت (معادل log 10 ( 24 24 ) ≈ 7.225 رقم اعشار است). بیت ها به صورت زیر قرار می گیرند:

مقدار واقعی فرض شده توسط یک داده 32 بیتی binary32 با یک علامت متعادلی داده شده، exponent e (عدد صحیح بدون علامت 8 بیتی) و یک کسری 23 بیتی

شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>(-1)^{b_{31}} \times 2^{(b_{30}b_{29} \dots b_{23})_2 - 127} \times (1.b_{22}b_{21} \dots b_0)_2,} </mo><mo> </mo><mn> </mn><msup><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub></mrow></msup><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false"> </mo><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mo stretchy="false"> </mo><mn> </mn><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo></mstyle></mrow> </math> </img>

کدام است؟

در این مثال:

  • شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mrow class="MJX-TeXAtom-ORD"><mtext> <math>\text{sign} = b_{31} = 0} </mtext></mrow><mo> </mo><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><mn> </mn></mstyle></mrow> </math> </img> ،
  • شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>(-1)^\text{sign} = (-1)^{0} = +1 \in \{-1, +1\}} </mo><mo> </mo><mn> </mn><msup><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mtext> </mtext></mrow></msup><mo> </mo><mo stretchy="false"> </mo><mo> </mo><mn> </mn><msup><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mo> </mo><mn> </mn><mo> </mo><mo fence="false" stretchy="false"> </mo><mo> </mo><mn> </mn><mo> </mo><mo> </mo><mn> </mn><mo fence="false" stretchy="false"> </mo></mstyle></mrow> </math> </img> ،
  • شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mi> <math>e = b_{30}b_{29} \dots b_{23} = \sum_{i=0}^{7} b_{23+i} 2^{+i} = 124 \in \{1, \ldots, (2^8 - 1) - 1\} = \{1, \ldots, 254 \}} </mi><mo> </mo><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><munderover><mo> </mo><mrow class="MJX-TeXAtom-ORD"><mi> </mi><mo> </mo><mn> </mn></mrow><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></munderover><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn><mo> </mo><mi> </mi></mrow></msub><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mi> </mi></mrow></msup><mo> </mo><mn> </mn><mo> </mo><mo fence="false" stretchy="false"> </mo><mn> </mn><mo> </mo><mo> </mo><mo> </mo><mo stretchy="false"> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mo stretchy="false"> </mo><mo> </mo><mn> </mn><mo fence="false" stretchy="false"> </mo><mo> </mo><mo fence="false" stretchy="false"> </mo><mn> </mn><mo> </mo><mo> </mo><mo> </mo><mn> </mn><mo fence="false" stretchy="false"> </mo></mstyle></mrow> </math> </img> ،
  • شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><msup><mn> <math>2^{(e-127)} = 2^{124-127} = 2^{-3} \in \{2^{-126}, \ldots, 2^{127}\} } </mn><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false"> </mo><mi> </mi><mo> </mo><mn> </mn><mo stretchy="false"> </mo></mrow></msup><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn><mo> </mo><mn> </mn></mrow></msup><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mo fence="false" stretchy="false"> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mo> </mo><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo fence="false" stretchy="false"> </mo></mstyle></mrow> </math> </img> ،
  • شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mn> <math>1.b_{22}b_{21}...b_{0} = 1 + \sum_{i=1}^{23} b_{23-i} 2^{-i} = 1 + 1\cdot 2^{-2} = 1.25 \in \{1, 1+2^{-23}, \ldots, 2-2^{-23}\} \subset [1; 2 - 2^{-23}] \subset [1; 2)} </mn><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><mo> </mo><mo> </mo><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><mn> </mn><mo> </mo><munderover><mo> </mo><mrow class="MJX-TeXAtom-ORD"><mi> </mi><mo> </mo><mn> </mn></mrow><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></munderover><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn><mo> </mo><mi> </mi></mrow></msub><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mi> </mi></mrow></msup><mo> </mo><mn> </mn><mo> </mo><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mo> </mo><mo fence="false" stretchy="false"> </mo><mn> </mn><mo> </mo><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mo> </mo><mo> </mo><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo fence="false" stretchy="false"> </mo><mo> </mo><mo stretchy="false"> </mo><mn> </mn><mo> </mo><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo stretchy="false"> </mo><mo> </mo><mo stretchy="false"> </mo><mn> </mn><mo> </mo><mn> </mn><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> .
  • شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mrow class="MJX-TeXAtom-ORD"><mtext> <math>\text{value} = (+1) \times 1.25 \times 2^{-3} = +0.15625} </mtext></mrow><mo> </mo><mo stretchy="false"> </mo><mo> </mo><mn> </mn><mo stretchy="false"> </mo><mo> </mo><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mo> </mo><mn> </mn></mstyle></mrow> </math> </img> .

توجه داشته باشید:

  • شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mn> <math>1+2^{-23} \approx 1.000\,000\,119} </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mn> </mn><mn> </mn></mstyle></mrow> </math> </img> ،
  • شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mn> <math>2-2^{-23} \approx 1.999\,999\,881} </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mn> </mn><mn> </mn></mstyle></mrow> </math> </img> ،
  • شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><msup><mn> <math>2^{-126} \approx 1.175\,494\,35 \times 10^{-38}} </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mn> </mn><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup></mstyle></mrow> </math> </img> ،
  • شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><msup><mn> <math>2^{+127} \approx 1.701\,411\,83 \times 10^{+38}} </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mn> </mn><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup></mstyle></mrow> </math> </img> .

یک نقطه دقیق نقطه شناور دودویی تک دقت با استفاده از بازنشسته offset-binary کدگذاری می شود، با جبران صفر 127؛ همچنین به عنوان تعصب نماینده در استاندارد IEEE 754 شناخته می شود.

  • E min = 01 H- 7F H = -126
  • E max = FE H- 7F H = 127
  • مقادیر تعادلی = 7F H = 127

بنابراین، برای بدست آوردن مقدار واقعی که توسط بازنشسته offset-dinary تعریف شده است، تعویض 127 باید از نماینده ذخیره شده محاسبه شود.

شاخص های ذخیره شده 00 H و FF H به طور خاص تفسیر می شوند.

نماینده معنی دار و صفر معنی دار و غیر صفر معادله
00 H صفر ، -0 اعداد انحرافی (-1) signbit × 2 -126 × 0.significandbits
01 H،. . .، FE H ارزش نرمال شده (-1) signbit × 2 exponentbits-127 × 1.significandbits
FF H ± بی نهایت NaN (آرام، سیگنالینگ)

حداقل مقدار طبیعی مثبت مقدار 2 -126 ≈ 1.18 × 10 -38 است و حداقل مقدار مثبت (انحرافی) برابر 2 -149 ≈ 1.4 × 10 -45 است .

تبدیل از نمای تفریق به فرمت binary32[ویرایش]

به طور کلی، به استاندارد IEEE 754 برای تبدیل سخت (از جمله رفتار گرد کردن) یک عدد واقعی به فرمت binary32 معادل آن مراجعه کنید.

در اینجا می توانیم نشان دهیم که چگونه یک عدد حقیقی پایه 10 را به یک فرمت IEEE 754 binary32 تبدیل کنیم با استفاده از طرح زیر:

  • یک عدد واقعی با یک عدد صحیح و یک قسمت کسری مانند 12.375 را در نظر بگیرید
  • بخش عدد صحیح را به دوتایی تبدیل و عادی کنید
  • بخش کسر را با استفاده از تکنیک زیر تبدیل کنید
  • اضافه کردن دو نتیجه و تنظیم آنها برای تولید یک تبدیل نهایی مناسب

تبدیل بخش تقسیم: در نظر گرفتن 0.375، بخش کسری از 12.375. برای تبدیل آن به یک کسر دودویی، کسر را با 2 ضرب کنید، بخش عدد صحیح را به دست آورید و قطعه جدید را دوباره 2 برابر کنید تا کسری از صفر پیدا شود یا تا زمانی که حد دقیق رسیده است که 23 رقم کسری برای فرمت IEEE 754 binary32 است .

0.375 x 2 = 0.750 = 0 + 0.750 => b -1 = 0، بخش عدد صحیح نشان دهنده رقم کسری باینری است. برای ادامه ادامه 0.750 را با 2 بار دوباره ادامه دهید

0.750 x 2 = 1.500 = 1 + 0.500 => b -2 = 1

0.500 x 2 = 1.000 = 1 + 0.000 => b -3 = 1، کسری = 0.000، خاتمه دادن

ما می بینیم که (0.375) 10 می تواند دقیقا در باینری به صورت (0.011) 2 نمایش داده شود . تمام جملات دهی را نمی توان در یک کسر باینری رقمی محدود کرد. به عنوان مثال، دهدهی 0.1 نمیتواند دقیقا در دودویی نمایش داده شود. بنابراین فقط تقریبی است.

بنابراین، (12.375) 10 = (12) 10 + (0.375) 10 = (1100) 2 + (0.011) 2 = (1100.011) 2

از آنجا که فرمت IEEE 754 binary32 نیاز به نمایش واقعی در مقادیر واقعی دارد شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>(1.x_1x_2...x_{23})_2 \times 2^{e}} </mo><mn> </mn><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><mo> </mo><mo> </mo><msub><mi> </mi><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mi> </mi></mrow></msup></mstyle></mrow> </math> </img> فرمت ( شماره عادی ، عدد Denormalized را ببینید )، 1100.011 به سمت راست با 3 رقم تبدیل می شود تا تبدیل شود شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>(1.100011)_2 \times 2^{3}} </mo><mn> </mn><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup></mstyle></mrow> </math> </img>

در نهایت می بینیم که: شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>(12.375)_{10} =(1.100011)_2 \times 2^{3}} </mo><mn> </mn><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><mo stretchy="false"> </mo><mn> </mn><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup></mstyle></mrow> </math> </img>

از آن ما می توانیم بگوییم:

  • شاخص 3 است (و در شکل متعادلی است بنابراین 130 = 1000 0010)
  • کسری 100011 است (به سمت راست نقطه دودویی نگاه کنید)

از این می توانیم 32 بیتی 32 بیتی IEEE 754 binary32 را از 12.375 به عنوان: 0-10000010-10001100000000000000000 = 41460000 H

توجه داشته باشید: تبدیل 68.123 را به فرمت IEEE 754 binary32 در نظر بگیرید: با استفاده از روش فوق شما انتظار دارید که 42883EF9 H با آخرین 4 بیت 1001 داشته باشید. با این حال، با توجه به رفتار گردابی پیش فرض فرمت IEEE 754، آنچه که شما دریافت می کنید 42883EFA H است که آخرین 4 بیت آن 1010 است.

EX 1: نظر دهی 1. ما می توانیم آن را ببینیم: شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>(1)_{10} =(1.0)_2 \times 2^{0}} </mo><mn> </mn><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><mo stretchy="false"> </mo><mn> </mn><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup></mstyle></mrow> </math> </img>

از آن ما می توانیم بگوییم:

  • نماد 0 است (و در شکل متعصب است بنابراین 127 = 0111 1111)
  • کسری 0 است (به سمت راست نقطه دودویی در 1.0 همه 0 = 000 ... 0 است)

از این ما می توانیم 32 بیتی 323 بیتی 754 باینری 32 فرمت نمایه واقعی شماره 1 را به عنوان: 0-01111111-00000000000000000000000 = 3f800000 H

سابق 2: مقدار 0.25 را در نظر بگیرید. ما می توانیم آن را ببینیم: شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>(0.25)_{10} =(1.0)_2 \times 2^{-2}} </mo><mn> </mn><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><mo stretchy="false"> </mo><mn> </mn><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup></mstyle></mrow> </math> </img>

از آن ما می توانیم بگوییم:

  • معادله -2 است (و در شکل متعصب آن 127 + (- 2) = 125 = 0111 1101 است)
  • کسری 0 است (به سمت راست نقطه دودویی در 1.0 همه صفر است)

از این می توانیم 32 بیتی IEEE 754 binary32 نمایش داده شده از عدد واقعی 0.25 را به عنوان: 0-01111101-00000000000000000000000 = 3e800000 H

سابقه 3: ارزش 0.375 را در نظر بگیرید. ما آن را دیدیم شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mn> <math>0.375 = {(1.1)_2}\times 2^{-2}} </mn><mo> </mo><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false"> </mo><mn> </mn><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub></mrow><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup></mstyle></mrow> </math> </img>

از این رو پس از تعیین یک نماینده از 0.375 به عنوان شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false"> <math>{(1.1)_2}\times 2^{-2}} </mo><mn> </mn><msub><mo stretchy="false"> </mo><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msub></mrow><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mo> </mo><mn> </mn></mrow></msup></mstyle></mrow> </math> </img> ما می توانیم به صورت زیر عمل کنیم:

  • معادله -2 است (و در شکل متعصب آن 127 + (- 2) = 125 = 0111 1101 است)
  • کسری 1 است (به سمت راست نقطه دودویی در 1.1، یک تک 1 = x 1 است )

از این ما می توانیم 32 بیتی IEEE 754 باینری 32 بیتی نمایش فرم واقعی شماره 0.375 به عنوان: 0-01111101-100000000000000000000000000 = 3ec00000 H

مثالهای تک دقت[ویرایش]

این مثال ها در نمایش بیتی، در شانزده و باینری ، از مقدار نقطه شناور داده می شود. این شامل علامت، (تعصب) نماینده، و اهمیت است.

 0 00000000 0000000000000000000000001 2 = 0000 0001 16 = 2 -126 × 2 -23 = 2 -149 ≈ 1.4012984643 × 10 -45
                                                   (کوچکترین عدد غیر عادی) 
 0 00000000 1111111111111111111111111 2 = 007f ffff 16 = 2 -126 × (1 -2 23 ) ≈ 1.1754942107 × 10 -38
                                                   (بزرگترین عدد غیر عادی) 
 00000001 00000000000000000000000 2 = 0080 0000 16 = 2 -126 ≈ 1.1754943508 × 10 -38
                                                   (کوچکترین عدد مثبت طبیعی) 
 0 11111110 1111111111111111111111111 2 = 7f7f ffff 16 = 2 127 × (2 -2 23 ) ≈ 3.4028234664 × 10 38
                                                   (بزرگترین عدد طبیعی) 
 0 01111110 1111111111111111111111111 2 = 3f7f ffff 16 = 1 - 2 -24 ≈ 0.9999999404
                                                   (بزرگترین تعداد کمتر از یک) 
 0 01111111 00000000000000000000000 2 = 3f80 0000 16 = 1 (یک) 
 01111111 0000000000000000000000001 2 = 3f80 0001 16 = 1 + 2 -23 ≈ 1.0000001192
                                                   (کوچکترین عدد بزرگتر از یک) 
 1 10000000 00000000000000000000000 2 = c000 0000 16 = -2
0 00000000 00000000000000000000000 2 = 0000 0000 16 = 0
1 00000000 00000000000000000000000 2 = 8000 0000 16 = -0
                                    
0 11111111 00000000000000000000000 2 = 7f80 0000 16 = بی نهایت
1 11111111 00000000000000000000000 2 = ff80 0000 16 = -infinity
                                    
0 10000000 10010010000111111011011 2 = 4049 0fdb 16 = 3.1415927410 ≈ π (pi)
0 01111101 01010101010101010101011 2 ≈ 3eaa aaab 16 = 1/3
                                    
x 11111111 1000000000000000000000001 2 = ffc0 0001 16 = qNaN (در پردازنده های x86 و ARM)
x 11111111 00000000000000000000000000 2 = ff80 0001 16 = sNaN (در پردازنده های x86 و ARM) 

به طور پیش فرض، 1/3 به جای دقت دو برابر ، به علت تعداد حصاری در مقدار قابل توجهی افزایش می یابد. بیت های 1/3 فراتر از نقطه گرد شدن 1010... که بیش از 1/2 واحد از آخرین مکان است .

رمزهای qNaN و sNaN در IEEE 754 مشخص نشده و بر روی پردازنده های مختلف اجرا می شوند. خانواده x86 و پردازنده های خانواده ARM از مهم ترین بیت میدان معروف و مورد استفاده برای نشان دادن یک NaN آرام استفاده می کنند. پردازنده های PA-RISC بیت را برای نشان دادن NaN سیگنال استفاده می کنند.

تبدیل از دودویی تک دقت به decimal[ویرایش]

ما در این مثال با نمایش هگزادسیمال مقدار 41c80000 شروع میکنیم و آن را به باینری تبدیل میکنیم:

41c8 0000 16 = 0100 0001 1100 1000 0000 0000 0000 0000 2

سپس ما آن را به سه بخش تقسیم می کنیم: علامت بیت، نماد، و اهمیت.

  • بیت نشانه: 0
  • معادل: 1000 0011 2 = 83 16 = 131
  • اهمیت: 100 1000 0000 0000 0000 0000 2 = 480000 16

سپس بیت 24 بیتی را به معنای مهم اضافه می کنیم:

  • اهمیت: 1 100 1000 0000 0000 0000 0000 2 = C80000 16

و مقدار exponent را با تفریق 127:

  • شاخص خام: 83 16 = 131
  • نماد رمز گشایی: 131 - 127 = 4

هر یک از 24 بیت از اهمیت (و شامل بیت 24 بیتی)، بیت 23 تا بیت 0، یک مقدار را نشان می دهد، که از 1 و برای هر بیت به صورت نیمه شروع می شود، به شرح زیر است:

 بیت 23 = 1
بیت 22 = 0.5
بیت 21 = 0.25
بیت 20 = 0.125
بیت 19 = 0.0625
بیت 18 = 0.03125
.
.
بیت 0 = 0.00000011920928955078125 

اهمیت و در این مثال دارای سه بیت است: بیت 23، بیت 22 و بیت 19. ما اکنون می توانیم مقدار قابل توجهی را با اضافه کردن مقادیر نشان داده شده توسط این بیت ها رمزگشایی کنیم.

  • اهمیت رمزگشایی: 1 + 0.5 + 0.0625 = 1.5625 = C80000 / 2 23

سپس ما باید با پایه، 2، به قدرت نماینده ضرب کنیم تا نتیجه نهایی را بدست آوریم:

1.5625 × 2 4 = 25

بدین ترتیب

41c8 0000 = 25

جایی که s علامت کمی است، x نشان دهنده، و m اهمیت است.

مقادیر دقیق در مقادیر عدد صحیح[ویرایش]

  • صحیح در شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>[-16777216,16777216]} </mo><mo> </mo><mn> </mn><mo> </mo><mn> </mn><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> می توان دقیقا نشان داد
  • صحیح در شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>[-33554432,-16777217]} </mo><mo> </mo><mn> </mn><mo> </mo><mo> </mo><mn> </mn><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> یا در شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>[16777217,33554432]} </mo><mn> </mn><mo> </mo><mn> </mn><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> دور چند تا از 2
  • صحیح در شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>[-2^{26},-2^{25}-1]} </mo><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> یا در شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>[2^{25}+1,2^{26}]} </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> دور چند تا از 4
  • . . . .
  • صحیح در شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>[-2^{127},-2^{126}-1]} </mo><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> یا در شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>[2^{126}+1,2^{127}]} </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> دور چند تا شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><msup><mn> <math>2^{103}} </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup></mstyle></mrow> </math> </img>
  • صحیح در شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>[-2^{128}+2^{104},-2^{127}-1]} </mo><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> یا در شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo stretchy="false"> <math>[2^{127}+1,2^{128}-2^{104}]} </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><mn> </mn><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo> </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup><mo stretchy="false"> </mo></mstyle></mrow> </math> </img> دور چند تا شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><msup><mn> <math>2^{127-23}} </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn><mo> </mo><mn> </mn></mrow></msup></mstyle></mrow> </math> </img>
  • عدد صحیح بزرگتر یا برابر است شکست در تجزیه (پاسخ نامعتبر MathML همراه SVG یا PNG جایگزین (توصیه شده برای مرورگرهای مدرن و ابزارهای کمکی) ("Math extension cannot connect to Restbase.") از سرور "https://wikimedia.org/api/rest_v1/":): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><msup><mn> <math>2^{128}} </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup></mstyle></mrow> </math> </img> یا کوچکتر از یا برابر است شکست در تجزیه (خطای نحوی): {\displaystyle <mrow class="MJX-TeXAtom-ORD"><mstyle displaystyle="true" scriptlevel="0"><mo> <math>-2^{128}} </mo><msup><mn> </mn><mrow class="MJX-TeXAtom-ORD"><mn> </mn></mrow></msup></mstyle></mrow> </math> </img> به "بی نهایت" گرد می شوند.

بهینه سازی[ویرایش]

طراحی فرمت نقطه شناور اجازه می دهد تا بهینه سازی های مختلف، که حاصل نسل آسان یک تقسیم لگاریتم پایه 2 از یک نمایش عدد صحیح از الگوی بیت خام است. ریاضی عدد صحیح و بیت تغییر می تواند تقریب به ریشه مربع متقاطع ( سریع ریشه مربع معکوس )، معمولا در گرافیک کامپیوتری مورد نیاز باشد .

همچنین نگاه کنید[ویرایش]

  • استاندارد IEEE برای اعتبار شناور نقطه (IEEE 754)
  • ISO / IEC 10967 ، ریاضی مستقل زبان
  • نوع داده اولیه
  • ثبات عددی

منابع[ویرایش]

لینک های خارجی[ویرایش]

This article "فرمت ممیز شناور با دقت یگانه" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:فرمت ممیز شناور با دقت یگانه. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.



Read or create/edit this page in another language[ویرایش]