صفر موقع
الصفر المُوَقَّع هو الصفر مع إشارة مُرتبطة به . في الحساب العادي، لا يحمل العدد 0 إشارة، و-0 و+0 و0 هي ثلاث طرق لكتابة العدد نفسه. مع ذلك، في الحوسبة ، تسمح بعض تمثيلات الأعداد بوجود صفرين، يُشار إليهما غالبًا بـ -0 ( صفر سالب ) و +0 ( صفر موجب )، ويُعتبران متساويين في عمليات المقارنة العددية، لكنهما قد يختلفان في سلوكهما في عمليات مُحددة. يحدث هذا في تمثيلات الأعداد الصحيحة المُوَقَّعة باستخدام الإشارة والمقدار ، وفي مُعظم تمثيلات الأعداد العشرية . يُعبَّر عن العدد 0 عادةً بـ +0.
يتطلب معيار IEEE 754 للحسابات العشرية (المستخدم حاليًا في معظم الحواسيب ولغات البرمجة التي تدعم الأعداد العشرية) وجود كل من +0 و -0. ويمكن اعتبار حساباته نموذجًا لخط الأعداد الحقيقية الموسع ( الأعداد الحقيقية التي تشمل العددين +∞ و -∞). في حسابات IEEE 754، فإن 1 / -0 = -∞ و 1 / +0 = + ∞؛ أما القسمة ± 0 / ±0 و ± ∞ / ± ∞ فتُرجع القيمة " ليس عددًا " ( NaN).
يعكس الصفر ذو الإشارة السالبة مفهوم التحليل الرياضي المتمثل في الاقتراب من الصفر من الأسفل كحدٍّ أحادي الجانب ، والذي يُمكن التعبير عنه بـ x → 0 − أو x → 0− أو x → ↑0. ويمكن استخدام الرمز "−0" بشكل غير رسمي للدلالة على عدد سالب تم تقريبه إلى الصفر. كما أن لمفهوم الصفر السالب بعض التطبيقات النظرية في الميكانيكا الإحصائية وغيرها من التخصصات.
يُزعم أن تضمين الصفر المُوَقَّع في معيار IEEE 754 يُسهِّل تحقيق الدقة العددية في بعض المسائل الحرجة، [ 1 ] لا سيما عند الحساب باستخدام الدوال الأولية المعقدة . [ 2 ] من جهة أخرى، يتعارض مفهوم الصفر المُوَقَّع مع الافتراض الشائع في الرياضيات بأن الصفر السالب هو نفسه الصفر. قد تُشكِّل التمثيلات التي تسمح بالصفر السالب مصدرًا للأخطاء في البرامج، إذا لم يُراعِ مطورو البرامج أنَّ تمثيلي الصفر، على الرغم من تساويهما في المقارنات العددية، يُنتجان نتائج مختلفة في بعض العمليات.
التمثيلات
يمكن استخدام ترميزات متنوعة في تنسيقات الأعداد الصحيحة الثنائية . في ترميز المتمم الثنائي الشائع ، يُمثل الصفر بدون إشارة. في تمثيل الإشارة والمقدار للأعداد الصحيحة باستخدام 1+7 بت، يُمثل الصفر السالب بسلسلة البتات . في تمثيل المتمم الأحادي ذي1000 0000 8 بت ، يُمثل الصفر السالب بسلسلة البتات . في جميع هذه الترميزات الثلاث، يُمثل الصفر الموجب أو بدون إشارة بـ . مع ذلك، فإن الترميزين الأخيرين (مع الصفر المُوقّع) غير شائعين في تنسيقات الأعداد الصحيحة. أما التنسيقات الأكثر شيوعًا التي تتضمن صفرًا مُوقّعًا فهي تنسيقات الفاصلة العائمة ( تنسيقات IEEE 754 أو ما شابهها)، والموصوفة أدناه.1111 11110000 0000

في تنسيقات الأعداد العشرية الثنائية IEEE 754، تُمثَّل القيم الصفرية بأن يكون كل من الأس المتحيز والجزء الكسري صفرًا. أما الصفر السالب، فتكون بتة الإشارة فيه مضبوطة على واحد. يمكن الحصول على الصفر السالب نتيجةً لبعض العمليات الحسابية، مثلاً نتيجةً لنقص البيانات الحسابية في عدد سالب (وقد تكون هناك نتائج أخرى ممكنة)، أو −1.0 × 0.0ببساطة كـ −0.0.
في تنسيقات الفاصلة العائمة العشرية IEEE 754، يتم تمثيل الصفر السالب بواسطة أس يكون أي أس صالح في نطاق التنسيق، ويكون الجزء الكسري الحقيقي هو الصفر، وتكون بتة الإشارة هي واحد.
الخصائص والتعامل
يحدد معيار IEEE 754 للأعداد العشرية سلوك الصفر الموجب والصفر السالب في ظل عمليات حسابية مختلفة. وقد تعتمد النتيجة على إعدادات وضع التقريب الحالية في معيار IEEE .
الترميز
في الأنظمة التي تتضمن أصفارًا موقعة وغير موقعة، يكون الترميزويُستخدم أحيانًا للأصفار الموقعة.
الحساب
الجمع والضرب عمليتان تبادليتان، ولكن هناك بعض القواعد الخاصة التي يجب اتباعها، مما يعني أن القواعد الرياضية المعتادة للتبسيط الجبري قد لا تنطبق.تشير العلامة أدناه إلى نتائج الفاصلة العائمة التي تم الحصول عليها (وهي ليست عامل المساواة المعتاد).
يتم اتباع القاعدة المعتادة للإشارات دائمًا عند الضرب أو القسمة:
- (ل different from ±∞)
- (for different from 0)
There are special rules for adding or subtracting signed zero:
- (for different from 0)
- (for any finite , −0 when rounding toward negative)
Because of negative zero (and also when the rounding mode is upward or downward), the expressions −(x − y) and (−x) − (−y), for floating-point variables x and y, cannot be replaced by y − x. However (−0) + x can be replaced by x with rounding to nearest (except when x can be a signaling NaN).
Some other special rules:
- [3]
- (follows the sign rule for division)
- (for non-zero , follows the sign rule for division)
- (Not a Number or interrupt for indeterminate form)
Division of a non-zero number by zero sets the divide by zero flag, and an operation producing a NaN sets the invalid operation flag. An exception handler is called if enabled for the corresponding flag.
Comparisons
According to the IEEE 754 standard, negative zero and positive zero should compare as equal with the usual (numerical) comparison operators, like the == operators of C and Java. In those languages, special programming tricks may be needed to distinguish the two values:
- Type punning the number to an integer type, so as to look at the sign bit in the bit pattern;
- using the ISO C
copysign()function (IEEE 754copySignoperation) to copy the sign of the zero to some non-zero number; - using the ISO C
signbit()macro (IEEE 754isSignMinusoperation) that returns whether the sign bit of a number is set; - taking the reciprocal of the zero to obtain either 1/+0 = +∞ or 1/−0 = −∞ (if the division by zero exception is not trapped).
Note: Conversion to integral type will not usually work, since almost all systems use two's complement signed integers, which only have one representation of zero. And even when the representation has two zeros, the language, like ISO C, may not provide means to distinguish them.
مع ذلك، قد توفر بعض لغات البرمجة عوامل مقارنة بديلة تميز بين الصفرين. وهذا هو الحال، على سبيل المثال، في الدالة الموجودة في فئة التغليفequals() في جافا . [ 4 ]java.lang.Double
بالقيم المقربة
بشكل غير رسمي، يمكن استخدام الرمز "-0" للدلالة على قيمة سالبة تم تقريبها إلى الصفر. قد يكون هذا الرمز مفيدًا عندما تكون الإشارة السالبة ذات دلالة؛ على سبيل المثال، عند جدولة درجات الحرارة المئوية ، حيث تعني الإشارة السالبة ما دون درجة التجمد .
في الميكانيكا الإحصائية
في الميكانيكا الإحصائية ، يُستخدم أحيانًا مصطلح درجات الحرارة السالبة لوصف الأنظمة التي تشهد انعكاسًا في توزيع السكان ، والذي يُمكن اعتباره ذا درجة حرارة أكبر من اللانهاية الموجبة، لأن معامل الطاقة في دالة توزيع السكان هو -1 / درجة الحرارة . في هذا السياق، تُعتبر درجة الحرارة -0 درجة حرارة (نظرية) أكبر من أي درجة حرارة سالبة أخرى، وتُمثل أقصى مدى مُمكن لانعكاس توزيع السكان، وهو النقيض المُطلق لدرجة الحرارة +0. [ 5 ]
انظر أيضاً
مراجع
- ↑ كاهان، ويليام . "قطع الفروع للدوال الأولية المعقدة، أو جزء الإشارة في كتاب "ضجة كبيرة حول لا شيء" (ملف PDF) . people.freebsd.org . مؤرشف (PDF) من الأصل بتاريخ 10 يونيو 2025. تم الاطلاع عليه بتاريخ 16 سبتمبر 2025 .
- ↑ ويليام كاهان ، المشتقات في المستوى المركب z ، ص 10.
- ↑ كوليشو، مايك (7 أبريل 2009). "الحساب العشري: العمليات الحسابية - الجذر التربيعي" . speleotrove.com ( شركة IBM ) . تم الاطلاع عليه في 7 ديسمبر 2010 .
- ↑ "مزدوج" . مواصفات واجهة برمجة تطبيقات Java™ Platform، الإصدار القياسي 6. مركز مساعدة أوراكل. مؤرشف من الأصل في 4 أغسطس 2009.
- ↑ كيتل، تشارلز وهربرت كرومر (1980). الفيزياء الحرارية (الطبعة الثانية) . دبليو إتش فريمان وشركاه . ص 462. ISBN 0-7167-1088-9.
- "أنواع الأعداد العشرية" . مواصفات لغة سي شارب من MSDN . مؤرشف من الأصل في 6 ديسمبر 2005. تم الاطلاع عليه في 15 أكتوبر 2005 .
- "عامل القسمة" . مواصفات لغة سي شارب من MSDN . مؤرشف من الأصل في 21 نوفمبر 2005. تم الاطلاع عليه في 15 أكتوبر 2005 .
- توماس وانغ (سبتمبر 2000) [مارس 2000]. "تعقيدات الأعداد العشرية في جافا" . مؤرشف من الأصل بتاريخ 21-09-2005.
- مايك كوليشو (28 يوليو 2008). "مواصفات الحساب العشري، الإصدار 1.68" . سبيليوتروف . تم الاطلاع عليه بتاريخ 14 أغسطس 2008 . – مواصفات الفاصلة العائمة العشرية التي تتضمن الصفر السالب
للمزيد من القراءة
- مايكل إنغراسيا. "تغيير إشارة فورتران 95" . شبكة مطوري صن . تم الاطلاع عليه في 15 أكتوبر 2005 . – التغييرات التي طرأت على دالة Fortran
SIGNفي Fortran 95 لاستيعاب الصفر السالب - "أنواع بيانات JScript" . MSDN JScript . تم الاطلاع عليه في 16 أكتوبر 2005 . – نوع البيانات العشرية في جافا سكريبت الذي يحتوي على صفر سالب بحكم التعريف
- فينرز، بيل (1 أكتوبر 1996). "الحسابات ذات الفاصلة العائمة" . تعلم جافا. جافا وورلد . نظرة معمقة . تم الاطلاع عليه بتاريخ 14 يوليو 2020 . – تمثيل الصفر السالب في آلة جافا الافتراضية
- بروس داوسون (25 فبراير 2012). "مقارنة الأرقام ذات الفاصلة العائمة، إصدار 2012" . – كيفية التعامل مع الصفر السالب عند مقارنة الأعداد العشرية
- جون ووكر . "ناقص صفر" . ذكريات يونيفاك . تم الاسترجاع في 17 أكتوبر 2005 . – أرقام المتمم الواحد على أجهزة الكمبيوتر من عائلة UNIVAC 1100
- الحساب الحاسوبي
- 0 (رقم)
- الإشارة (الرياضيات)
