الإشارة

في مجال الحوسبة، تُعدّ خاصية الإشارة من خصائص أنواع البيانات التي تُمثّل الأرقام في برامج الحاسوب. يكون المتغير العددي مُوقّعًا إذا كان بإمكانه تمثيل كلٍّ من الأعداد الموجبة والسالبة ، وغير مُوقّع إذا كان بإمكانه تمثيل الأعداد غير السالبة فقط (الصفر أو الأعداد الموجبة).

بما أن الأرقام الموقعة يمكنها تمثيل الأرقام السالبة، فإنها تفقد نطاقًا من الأرقام الموجبة التي لا يمكن تمثيلها إلا بأرقام غير موقعة من نفس الحجم (بالبتات) لأن ما يقرب من نصف القيم الممكنة هي قيم غير موجبة، في حين أن النوع غير الموقع المقابل يمكنه تخصيص جميع القيم الممكنة لنطاق الأرقام الموجبة.

على سبيل المثال، يمكن لعدد صحيح ذي 16 بت مُوَقَّع بنظام المتمم الثنائي أن يحمل القيم من -32768 إلى 32767 شاملةً، بينما يمكن لعدد صحيح ذي 16 بت غير مُوَقَّع أن يحمل القيم من 0 إلى 65535. في هذه الطريقة لتمثيل الإشارة ، يُشير البت الأيسر ( البت الأكثر أهمية ) إلى ما إذا كانت القيمة سالبة (0 للموجبة أو الصفر، و1 للسالبة).

في لغات البرمجة

في معظم البنى، لا يوجد تمييز بين أنواع البيانات المُوقّعة وغير المُوقّعة في لغة الآلة . ومع ذلك، عادةً ما تُعيّن تعليمات العمليات الحسابية علامات مختلفة لوحدة المعالجة المركزية ، مثل علامة الحمل للعمليات الحسابية غير المُوقّعة وعلامة تجاوز السعة للعمليات الحسابية المُوقّعة. ويمكن أخذ هذه القيم في الاعتبار بواسطة أوامر التفرع أو العمليات الحسابية اللاحقة.

تُطبّق لغة البرمجة C ، بالإضافة إلى مشتقاتها (باستثناء Java التي تفتقر إلى أنواع البيانات غير الموقعة)، خاصية الإشارة لجميع أنواع البيانات العددية الصحيحة ، وكذلك للأحرف . بالنسبة للأعداد الصحيحة، unsignedيُحدد المُعدِّل `unsigned` نوع البيانات ليكون غير مُوقَّع. الإشارة الافتراضية للأعداد الصحيحة خارج حقول البت هي إشارة، ولكن يمكن تحديدها صراحةً باستخدام signedالمُعدِّل `unsigned`. في المقابل، يُعلن معيار C أن signed char`unsigned` unsigned charو`character` و` charcharacter` هي ثلاثة أنواع بيانات مُختلفة، ولكنه يُحدد أن جميعها يجب أن يكون لها نفس الحجم والمحاذاة. علاوة على ذلك، charيجب أن يكون لـ `unsigned` نفس النطاق العددي لـ `unsigned` signed charأو `character` unsigned char، ولكن اختيار النطاق يعتمد على النظام الأساسي. يمكن جعل القيم العددية الصحيحة غير مُوقَّعة باستخدام اللاحقة `U` .

غالباً ما تُصدر المترجمات تحذيراً عند إجراء مقارنات بين الأعداد الموقعة وغير الموقعة، أو عند تحويل أحدهما إلى الآخر. تُعدّ هذه العمليات خطيرةً نظراً لاختلاف نطاقات أنواع البيانات الموقعة وغير الموقعة.

أنواع البيانات
أجزاءمينالأعلى
8 (موقع)-128127
16 (موقع)-32 76832767
32 (موقع)-2 147 483 6482 147 483 647
64 (موقع)-9 223 372 036 854 775 8089 223 372 036 854 775 807
128 (موقع)-170 141 183 460 469 231 731 687 303 715 884 105 728170 141 183 460 469 231 731 687 303 715 884 105 727
8 (بدون توقيع)0255
16 (بدون توقيع)065 535
32 (بدون توقيع)04 294 967 295
64 (بدون توقيع)018 446 744 073 709 551 615
128 (بدون توقيع)0340 282 366 920 938 463 463 374 607 431 768 211 455

انظر أيضاً