Arduino/int
الأعداد الصحيحة هي نوع البيانات الأساسي المستعمل لتخزين الأعداد.
في لوحات أردوينو Uno (واللوحات التي تعتمد على المتحمات ATmega)، يحجز النوع int
حجمًا مقداره 16 بت (2 بايت) من الذاكرة والتي يمكن فيها تخزين أعداد تتراوح بين 32768- (أصغر قيمة وتساوي 15^2-) و 32767 (أكبر قيمة وتساوي 1 - 15^2). أمَّل في لوحات أردوينو Due واللوحات التي تعتمد على متحكمات SAMD (مثل اللوحات MKR1000، و Zero)، يحجز النوع حجمًا بمقدار 32 بت (4 بايت) من الذاكرة لتخزين أعداد تتراوح من 2,147,483,648- (31^2-) إلى 2,147,483,647 (1 - 31^2).
يخزِّن هذا النوع أعدادًا سالبة بتقنية تدعى «المتمم الثنائي» (Two's complement). البت الأعلى الأكثر أهمية (MSB) يحدِّد إن كان العدد سالبًا أو موجبًا، ويسمى في كثير من الأحيان «بت الإشارة» (sign bit). عندما تكون قيمته 1، تعكس قيمة جميع البتات المتبقية ويضاف إليها القيمة 1.
تتولى أردوينو مهمة التعامل مع الأعداد السالبة، لذا تُجرَى العمليات الحسابية بشفافية وبالطريقة المتوقعة. على أي حال، قد يكون هنالك بعض التعقيد في التعامل مع معامل الإزاحة <<
.
البنية العامة
int var = val;
يمثِّل var
اسم المتغير المراد التصريح به، وتمثِّل val
القيمة العددية الصحيحة المراد إسنادها إلى هذا المتغير.
أمثلة
سينشئ المثال التالي متغيرًا يدعى countUp
ويسند قيمة أولية إليه. سيُستعمَل هذا المتغير كعداد تصاعدي، إذ ستُزاد قيمته خلال حلقة التكرار وستُظهر على واجهة التخاطب التسلسلية:
int countUp = 0; // التصريح عن متغير يحوي أعدادًا صحيحة
void setup() {
Serial.begin(9600); // تهيئة وبدء المنفذ التسلسلي
}
void loop() {
countUp++; // countUp إضافة القيمة 1 إلى المتغير
Serial.println(countUp); // طباعة قيمة المتغير الحالية على المنفذ التسلسلي
delay(1000);
}
ملاحظات وتحذيرات
إن تجاوزت المتغيرات ذات الإشارة القيمة القصوى أو الدنيا للنوع الذي عُرِّفت به، فستكون حينئذٍ قد وصلت إلى حالة «الطفحان» (overflow)، ولا يمكن آنذاك التنبؤ بقيمتها. وبالتالي، يجب تجنيب أي متغير من الوصول إلى حالة الطفحان. أحد مؤشرات وصول المتغير إلى حالة الطفحان هو انتقال المتغير من قيمته القصوى إلى قيمته الدنيا أو العكس؛ انتبه أنَّنا قلنا «أحد المؤشرات» وليس المؤشر الوحيد لهذا الأمر، لذا كن حذرًا. إن عرَّفت متغيرًا ولم تكن تنوي استعمال القيم السالبة فيه، فيجب استعمال النسخة عديمة الإشارة من هذا النوع وهي «عدد صحيح عديم الإشارة» (unsigned int) لتقليل احتمالية الوصول إلى حالة الطفحان.