الأن أي شخص درس أي لغة برمجة سيعترض و بقوة و سيقول لي "متحولات الInteger و التي تحوي على قيم صحيحة بطول 1Byte يمكن أن تتسع إلى أرقام من 0إلى 255 و على حسب ما ذكرت سأحتاج إلى 2Byte كي يتسع إلى 255" و سيكون الجواب هنا يأتي دور لغة البرمجة إذ أن المعالج بالنسبة له كل ما يدور حوله يعتبر أرقام فقط و لن يفرق بين عدد موجب أو عدد سالب و لكنه زود ببعض الادوات التي تساعده على التعامل مع أي شيء فالمعالج يحتوي على ما يسمى مسجل الحالة إذ أن هذا المسجل يحتوي يعلم البرنامج المنفذ عن حدوث حالة معينة في المعالج قد حدثت حتى يستطيع البرنامج فهم سبب الجواب الغريب و يخرجه للمستخدم بشكل صحيح ،عادة ما يكون طول هذا المسجل بايت و لكنه الأن ليس حديثنا ما يهمنا أن نعرفه أنه يحوي على ما يسمى Negative flag و Overflow Flag و الكل بت من هذا المسجل يسمى Flag
سأخذ الأن كما يسمى سيناريو و اسقطه على المعالج و نرى كيف يقوم البرنامج بفهم ما يحدث من خلال مسجل الحالة،لنفترض أني قمت بالعملية التالية01000000 (64+)،+ 01000001 (65+)
-------------
10000001 (-127)

الأن ما سيحدث هو في حال كان المتحول أثناء كتابة البرنامج معرف على أنه Integer فلن ينظر إلى الNegative flag و الذي يحدد إن كان الناتج سالب "تصبح قيمته 1 عندما يكون ناتج العملية سالب" و يتم التعامل مع الناتج على أنه عدد ثنائي عادي و ليس متمم ثنائي وهذه العمليات هي من إختصاص لغة البرمجة

نظام العد الست عشري ،هذا النظام يتكون من 16 عشر رمز "من 0 إلى F" و تتوزع وفق الجدول التالي
و هو مهم جدا عند التعامل مع الذاكرة و ذلك لأنه يستطيع وصف عدد كبير من خلال رموز قليلة فمثلا،العدد FFFF يمثل في الأعداد العشرية 65535 وفي الأعداد الثنائية 1111111111111111 و يتميز هذا النظام أن أساسه يقبل القسمة على اساس النظام الثنائي لذلك يمكن أن توصف كل خانة من نظام العد الست عشري ب بأربع خانات من الأعداد الثنائية لأن 2 مرفوعة للأساس 4 تعطي الرقم 16

نظام العد الثماني،و يتكون من ثمانية رموز "0 إلى 7"