Arduino/integerconstants
الأعداد الصحيحة الثابتة هي أعداد استعملت مباشرةً في الشيفرة مثل 123. افتراضيًّا، تعامل هذه الأعداد على أنَّها أعداد صحيحة (integer) ولكن يمكن تحويلها إلى أنواع أخرى من الأعداد باستعمال أحد المبدلات (modifiers) مثل U أو L.
تعامل الأعداد الصحيحة على أنَّها أعدادٌ صحيحةٌ ذات الأساس 10 بشكل طبيعي دومًا (أي تمثَّل بالنظام العشري افتراضيًّا). مع ذلك، يمكن استعمال صيغ (أنظمة عد) أخرى لكتابة الأعداد، إذ سيختلف حينئذٍ أساس العدد.
الأساس | مثال | المنسِّق | ملاحظات |
---|---|---|---|
10 (نظام عشري) | 123 | لا يوجد | |
2 (نظام ثنائي) | B1111011 | يُبدَأ العدد بالحرف B. | يعمل مع القيم التي بحجم 8 بت فقط (0 إلى 255). يُستعمَل الرقمان 0 و 1 في هذا النظام فقط. |
8 (نظام ثماني) | 0173 | يُبدَأ العدد بالرقم 0. | الأرقام الصالحة مع هذا النظام هي من 0 إلى 7 فقط. |
16 (نظام ست عشري) | 0x7B | يُبدَأ العدد بالرمز 0x. | الأرقام والأحرف الصالحة مع هذا النظام هي من 0 إلى 9 ومن A إلى F (أو من a إلى f) فقط. |
النظام العشري (الأساس 10)
هذا النظام هو نظام العد الشائع بين البشر الذي يستعملونه دومًا في عمليات الحساب. تُعدُّ الأعداد المكتوبة في الشيفرة والغير مسبوقة بأي منسِّق (بادئة) على أنَّها أعداد مكتوبة بالنظام العشري (أساسها 10).
n = 101; // ((1 * 10^2) + (0 * 10^1) + 1)
النظام الثنائي (الأساس 2)
تمثَّل القيم في هذا النظام بالرقمين 0 و 1 فقط.
n = B101; // ((1 * 2^2) + (0 * 2^1) + 1 * 2^0) == 5 في النظام العشري
الصيغة الثنائية صالحة للاستعمال مع القيم التي بحجم بايت (8 بت) فقط؛ أي بين 0 (B0) و 255 (B11111111). إن كنت تريد استعمال الصيغة الثنائية مع قيم بحجم أكبر -مثل استعمالها مع الأعداد الصحيحة (16 بت)-، فيمكنك القيام بذلك عبر تنفيذ عملية بسيطة من خطوتين بالشكل التالي:
myInt = (B11001100 * 256) + B10101010; // هي البايت العلوي B11001100 القيمة
النظام الثماني (الأساس 8)
الأرقام المستعملة في تمثيل القيم في هذا النظام هي من 0 إلى 7. تبدأ القيم المراد كتابتها وتمثيلها بهذا النظام بالمنسِّق 0 (صفر).
n = 0101; // ((1 * 8^2) + (0 * 8^1) + 1) == 65 في النظام العشري
يحتمل أن يحدث خطأ منطقي يصعب إيجاده في الشيفرة ناتجٌ عن بدء ثابتٍ بصفر بشكل غير مقصود؛ هذا الأمر يؤدي إلى تفسير المفسِّر لهذا الثابت على أنَّه قيمة ثمانية أثناء تصريف الشيفرة.
النظام الست عشري (الأساس 16)
الأرقام والمحارف المستعملة في تمثيل القيم في هذا النظام هي من 0 إلى 9 ومن A إلى F. في الحقيقة، القيمة العشرية للحرف A هي 10، والحرف B هي 11 وهكذا حتى الحرف F الذي قيمته 15. تبدأ القيم المراد تمثيلها وكتابتها في النظام الست عشري بالبادئة 0x. انتبه إلى أنَّه يمكن استعمال الحروف A-F بالحالة الكبيرة أو الصغيرة (a-f).
n = 0x101; // ((1 * 16^2) + (0 * 16^1) + 1) == 257 في النظام العشري
ملاحظات وتحذيرات
المبدلان U و L
افتراضيًّا، يعامل العدد الصحيح الثابت على أنَّه من النوع «عدد صحيح» الذي يملك حجمًا محدودًا قد يكون غير كافٍ. لتغيير هذا النوع إلى نوع آخر من البيانات، يمكنك استعمال أحد المبدلات U أو L بالشكل التالي:
- 'u' أو 'U': يُستعمَل هذا المبدل في نهاية الثابت العددي لتحويله إلى النوع «عديم الإشارة» (unsigned) مثل 33u.
- 'l' أو 'L': يُستعمَل هذا المبدل في نهاية الثابت العددي لتحويله إلى النوع «عدد طويل» مثل 100000L.
- 'ul' أو 'UL': يُستعمَل المبدلان معًا في نهاية الثابت العددي لتحويله إلى النوع «عدد طويل عديم الإشارة» مثل 32767ul.