الوقت/الأرقام

محول IEEE 754 float

رقم عشري ↔ تمثيل ثنائي وفق IEEE 754 (دقة أحادية أو مزدوجة) — الإشارة، الأس، الجزء العشري (mantissa)، القيم الخاصة.


            

Computers store fractional numbers in binary under the IEEE 754 standard — a sign, an exponent, and a mantissa, packed into a fixed number of bits. This tool shows that representation for any decimal number and parses it back into a number.

How to use it

Common uses

Things to keep in mind

Most decimal fractions (0.1, for example) have no exact binary representation — that's the root cause of the typical rounding errors seen in calculation results.

Comparing floating-point numbers for exact equality (===) is unreliable — check instead whether the difference is smaller than a small threshold (epsilon).

مقالة عن هذه الأداة: IEEE 754: لماذا لا يساوي 0.1 + 0.2 القيمة 0.3 في الكود

الأسئلة الشائعة

ما الفرق بين الدقة المفردة والمزدوجة؟

تعطي الدقة المفردة (float، 32 بت) حوالي 7 أرقام عشرية من الدقة، بينما تعطي المزدوجة (double، 64 بت) حوالي 15-17. يستخدم نوع Number في JavaScript الدقة المزدوجة.

لماذا تفقد بعض الأعداد العشرية دقتها؟

يخزّن معيار IEEE 754 الأعداد بالنظام الثنائي، والعديد من الكسور العشرية (مثل 0.1) ليس لها تمثيل ثنائي منته دقيق — لذا يُخزَّن أقرب قيمة ممكنة مع خطأ تقريب ضئيل.

ماذا تعني NaN وInfinity وَ-0؟

NaN هو نتيجة عملية غير صالحة مثل 0/0. تظهر Infinity/-Infinity عندما تتجاوز قيمة النطاق القابل للتمثيل (مثل القسمة على 0). أما +0 وَ-0 فهما تمثيلان مختلفان لصفر مُوقَّع، لكنهما متساويان كأعداد.

ما هي الأعداد شبه الطبيعية (denormalized)؟

وضع تمثيل خاص للأعداد الصغيرة جدًا قيمةً مطلقة بالنسبة للصيغة العادية — يُسقَط الواحد الضمني في مقدمة المعامل، ما يتيح الاقتراب تدريجيًا من الصفر على حساب فقدان جزء من الدقة.

كيف تُقارَن الأعداد الكسرية بشكل صحيح بدلًا من التحقق من التساوي التام؟

بدلًا من a === b، يُتحقَّق مما إذا كان الفرق بين الرقمين أصغر من عتبة صغيرة (إبسيلون): Math.abs(a - b) < 1e-9. التساوي التام شبه مضمون أبدًا بسبب أخطاء التقريب.

مقالات: الوقت/الأرقام

وقت يونكس: لماذا تحسب الحواسيب الوقت منذ 1970

لماذا أصبح 1 يناير 1970 نقطة مرجعية للوقت في معظم أنظمة الحاسوب.

تعبيرات Cron: كيف تفكّ جدولة المهام

كيف تفكّ تعبيرًا مثل */15 * * * * وتعرف بالضبط متى ستُشغَّل المهمة.

أنظمة العد: لماذا توجد الأنظمة الثنائية والثمانية والسداسية عشرية

لماذا يُكتب اللون #FF5733 في CSS بأرقام سداسية عشرية لا عشرية.

العمليات على البتات: كيف تعمل AND وOR وXOR على مستوى البت

كيف يختلف AND على مستوى البت عن AND المنطقي، ولماذا نحتاج للعمل على بتات فردية من رقم أصلًا.

الفرق بين التواريخ: لماذا عدّ الأيام أعقد مما يبدو

لماذا قد يعطي طرح التواريخ ببساطة نتيجة خاطئة بسبب السنوات الكبيسة.

حساب العمر: لماذا ليس مجرد طرح سنوات

لماذا قد يعطي طرح سنة الميلاد ببساطة عمرًا أكبر بسنة من العمر الحقيقي.

المناطق الزمنية: لماذا لا يعني UTC نفس معنى GMT

لماذا لا يتغيّر UTC أبدًا مرتين في السنة، بينما يتغيّر توقيت لندن (GMT/BST).

حاسبة المدة: كيف تجمع الساعات والدقائق والثواني بشكل صحيح

لماذا يجب "ترحيل" الباقي إلى الخانة التالية عند جمع الدقائق والثواني، تمامًا كما في الجمع العشري.

ISO 8601 Duration: كيف تكتب مدة بصيغة قياسية

لماذا تعني الصيغة PT1H30M «ساعة و30 دقيقة»، لا «دقيقة و30 ساعة».

رقم الأسبوع: لماذا تحسب دول مختلفة الأسابيع بطرق مختلفة

لماذا ينتمي 1 يناير أحيانًا إلى الأسبوع 52 أو 53 من العام السابق وفق معيار ISO 8601.

الأرقام الرومانية: كيف يعمل نظام بلا صفر وبلا منازل

لماذا يعني IV الرقم 4 لا 6، وكيف تعمل قاعدة الطرح في الأرقام الرومانية.

الرقم كتابةً: لماذا نحوّل الأرقام إلى كلمات

لماذا تكتب المستندات المصرفية المبلغ بالأرقام والحروف معًا.