الفرق بين المراجعتين لصفحة: «Arduino/int»

من موسوعة حسوب
أنشأ الصفحة ب'الأعداد الصحيحة هي نوع البيانات الأساسي المستعمل لتخزين الأعداد. في لوحات أردوينو Uno (واللوح...'
 
إضافة محتويات الصفحة.
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:النوع <code>int</code> في  أردوينو}}</noinclude>
الأعداد الصحيحة هي نوع البيانات الأساسي المستعمل لتخزين الأعداد.
الأعداد الصحيحة هي نوع البيانات الأساسي المستعمل لتخزين الأعداد.


في لوحات أردوينو Uno (واللوحات التي تعتمد على المتحمات ATmega)، يحجز النوع <code>int</code> حجمًا مقداره 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).
في لوحات أردوينو Uno (واللوحات التي تعتمد على المتحمات ATmega)، يحجز النوع <code>int</code> حجمًا مقداره 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).


يخزِّن هذا النوع أعدادًا سالبة بتقنية تدعى «المتمم الثنائي» ([[wikipedia:Two's_complement|Two's complement]]). البت الأعلى الأكثر أهمية (MSB) يحدِّد إن كان العدد سالبًا أو موجبًا، ويسمى في كثير من الأحيان «بت الإشارة» (sign bit). عندما تكون قيمته 1، تعكس قيمة جميع البتات المتبقية ويضاف إليها القيمة 1.
يخزِّن هذا النوع أعدادًا سالبة بتقنية تدعى «المتمم الثنائي» ([[wikipedia:Two's_complement|Two's complement]]). يحدِّد البت الأعلى الأكثر أهمية (MSB) إن كان العدد سالبًا أو موجبًا، ويسمى في كثير من الأحيان «بت الإشارة» (sign bit). عندما تكون قيمته 1، تُعكَس قيمة جميع البتات المتبقية ويضاف إليها القيمة 1.


تتولى أردوينو مهمة التعامل مع الأعداد السالبة، لذا تُجرَى [[Arduino/arithmetic operators|العمليات الحسابية]] بشفافية وبالطريقة المتوقعة. على أي حال، قد يكون هنالك بعض التعقيد في التعامل مع معامل الإزاحة <code>[[Arduino/bitwise operators/bitshiftright|<<]]</code>.
تتولى أردوينو مهمة التعامل مع الأعداد السالبة، لذا تُجرَى [[Arduino/arithmetic operators|العمليات الحسابية]] عليها بشفافية وبالطريقة المتوقعة. على أي حال، قد يكون هنالك بعض التعقيد في التعامل مع معامل الإزاحة <code>[[Arduino/bitwise operators/bitshiftright|<<]]</code>.
 
==البنية العامة==
== البنية العامة ==
<syntaxhighlight lang="arduino">
<syntaxhighlight lang="arduino">
int var = val;
int var = val;
سطر 13: سطر 13:


</syntaxhighlight>يمثِّل <code>var</code> اسم المتغير المراد التصريح به، وتمثِّل <code>val</code> القيمة العددية الصحيحة المراد إسنادها إلى هذا المتغير.
</syntaxhighlight>يمثِّل <code>var</code> اسم المتغير المراد التصريح به، وتمثِّل <code>val</code> القيمة العددية الصحيحة المراد إسنادها إلى هذا المتغير.
 
==أمثلة==
== أمثلة ==
سينشئ المثال التالي متغيرًا يدعى <code>countUp</code> ويسند قيمة أولية إليه؛ سيُستعمَل هذا المتغير كعداد تصاعدي، إذ ستُزاد قيمته خلال حلقة التكرار وستُظهَر على [[Arduino/serial|واجهة التخاطب التسلسلية]]:<syntaxhighlight lang="arduino">
سينشئ المثال التالي متغيرًا يدعى <code>countUp</code> ويسند قيمة أولية إليه. سيُستعمَل هذا المتغير كعداد تصاعدي، إذ ستُزاد قيمته خلال حلقة التكرار وستُظهر على واجهة التخاطب التسلسلية:<syntaxhighlight lang="arduino">
int countUp = 0;            // التصريح عن متغير يحوي أعدادًا صحيحة
int countUp = 0;            // التصريح عن متغير يحوي أعدادًا صحيحة


سطر 28: سطر 27:
}
}
</syntaxhighlight>
</syntaxhighlight>
==ملاحظات وتحذيرات==
إن تجاوزت المتغيرات ذات الإشارة القيمة القصوى أو الدنيا للنوع الذي عُرِّفَت به، فستكون حينئذٍ قد وصلت إلى حالة «الطفحان» (overflow)، ولا يمكن آنذاك التنبؤ بقيمتها. وبالتالي، يجب توخي الحذر من جعل متغير يصل إلى حالة الطفحان (إلا إذا كان ذلك مرغوبًا به). أحد مؤشرات وصول المتغير إلى حالة الطفحان هو انتقال المتغير من قيمته القصوى إلى قيمته الدنيا أو العكس؛ انتبه أنَّنا قلنا «أحد المؤشرات» وليس الدليل الوحيد على حصول طفحان، لذا كن حذرًا. إن عرَّفت متغيرًا ولم تكن تنوي استعماله لتخزين قيمة سالبة فيه، فيجب استعمال النسخة عديمة الإشارة من هذا النوع وهي «<nowiki/>[[Arduino/unsignedint|عدد صحيح عديم الإشارة]]» (unsigned int) لتقليل احتمالية الوصول إلى حالة الطفحان.
==انظر أيضًا==
* النوع <code>[[Arduino/array|array]]</code>: يمثِّل مصفوفة من المتغيرات الموضوعة في وعاء واحد والتي يمكن الوصول إليها والتعامل معها عبر رقم فهرس كلٍّ منها.
* النوع <code>[[Arduino/bool|bool]]</code>: يخزِّن المتغير الذي يصرَّح عنه بأنَّه من النوع [[Arduino/bool|<code>bool</code>]] إحدى القيمتين المنطقيَّتين التاليتين: <code>[[Arduino/constants#.D8.A7.D9.84.D8.AB.D8.A7.D8.A8.D8.AA true|true]]</code>، أو <code>[[Arduino/constants#.D8.A7.D9.84.D8.AB.D8.A7.D8.A8.D8.AA false|false]]</code> عبر حجز بايتٍ واحدٍ من الذاكرة فقط.
* النوع <code>[[Arduino/byte|byte]]</code>: يُخزِّن عددًا عديم الإشارة بحجم 8 بت؛ أي من القيمة 0 إلى القيمة 255.
* النوع <code>[[Arduino/char|char]]</code>: يحجز بايتًا واحدًا من الذاكرة ويخزِّن فيه قيمة محرف.
* النوع <code>[[Arduino/double|double]]</code>: يحجز أربعة بايتات (32 بت) من الذاكرة فقط في لوحات أردوينو Uno (والتي تعتمد على متحكمات ATMega) أو ثمانية بايتات (64 بت) في اللوحات Due لتخزين عدد عشري فيها.
* النوع <code>[[Arduino/float|float]]</code>: يحجز أربعة بايتات (32 بت) من الذاكرة لتخزين عدد عشري فيها.
* النوع <code>[[Arduino/long|long]]</code>: يحجز حجمًا كبيرًا من الذاكرة مقداره 4 بايت يستعمل لتخزين الأعداد الصحيحة التي تتسم بأنَّها طويلة.
* النوع <code>[[Arduino/short|short]]</code>: يحجز في جميع لوحات أردوينو (التي تعتمد على المتحكمات ATMega و ARM) حجمًا من الذاكرة مقداره 16 بت (2 بايت) لتخزين عدد قصير فيه.
* النوع <code>[[Arduino/string|string]]</code>: يمثِّل سلسلةً نصيةً مؤلفةً من عدة محارف مرتبطة مع بعضها بعضًا. تُستعمَل مصفوفة من المحارف لتخزين هذا النوع من البيانات واستدعائها والتعامل معها لاحقًا.
* النوع <code>[[Arduino/unsignedchar|unsigned char]]</code>: يحجز حجمًا من الذاكرة مقداره 1 بايت فقط.
* النوع <code>[[Arduino/unsignedint|unsigned int]]</code>: يحجز حجمًا من الذاكرة مقداره 2 بايت في لوحات أردونيو Uno واللوحات التي تعتمد على متحكمات ATMega أو 4 بايت في لوحات أردوينو Due لتخزين عدد صحيح عديم الإشارة فيها.
* النوع <code>[[Arduino/unsignedlong|unsigned long]]</code>: يحجز حجمًا كبيرًا من الذاكرة مقداره 4 بايت يُستعمَل لتخزين الأعداد الصحيحة عديمة الإشارة التي تتسم بأنَّها طويلة.
* النوع <code>[[Arduino/word|word]]</code>: يُخزِّن أعدادًا عديم الإشارة بحجم 2 بايت.


== ملاحظات وتحذيرات ==
==مصادر==
إن تجاوزت المتغيرات ذات الإشارة القيمة القصوى أو الدنيا للنوع الذي عُرِّفت به، فستكون حينئذٍ قد وصلت إلى حالة «الطفحان» (overflow)، ولا يمكن آنذاك التنبؤ بقيمتها. وبالتالي، يجب تجنيب أي متغير من الوصول إلى حالة الطفحان. أحد مؤشرات وصول المتغير إلى حالة الطفحان هو انتقال المتغير من قيمته القصوى إلى قيمته الدنيا أو العكس؛ انتبه أنَّنا قلنا «أحد المؤشرات» وليس المؤشر الوحيد لهذا الأمر، لذا كن حذرًا. إن عرَّفت متغيرًا ولم تكن تنوي استعمال القيم السالبة فيه، فيجب استعمال النسخة عديمة الإشارة من هذا النوع وهي «<nowiki/>[[Arduino/unsignedint|عدد صحيح عديم الإشارة]]» (unsigned int) لتقليل احتمالية الوصول إلى حالة الطفحان.
*[https://www.arduino.cc/reference/en/language/variables/data-types/int/ صفحة النوع int في توثيق أردوينو الرسمي.]
 
[[تصنيف: Arduino]]
== انظر أيضًا ==
[[تصنيف: Arduino Data Type]]
 
== مصادر ==
* [https://www.arduino.cc/reference/en/language/variables/data-types/int/ صفحة النوع int في توثيق أردوينو الرسمي.]

المراجعة الحالية بتاريخ 14:54، 26 أكتوبر 2018

الأعداد الصحيحة هي نوع البيانات الأساسي المستعمل لتخزين الأعداد.

في لوحات أردوينو 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) لتقليل احتمالية الوصول إلى حالة الطفحان.

انظر أيضًا

  • النوع array: يمثِّل مصفوفة من المتغيرات الموضوعة في وعاء واحد والتي يمكن الوصول إليها والتعامل معها عبر رقم فهرس كلٍّ منها.
  • النوع bool: يخزِّن المتغير الذي يصرَّح عنه بأنَّه من النوع bool إحدى القيمتين المنطقيَّتين التاليتين: true، أو false عبر حجز بايتٍ واحدٍ من الذاكرة فقط.
  • النوع byte: يُخزِّن عددًا عديم الإشارة بحجم 8 بت؛ أي من القيمة 0 إلى القيمة 255.
  • النوع char: يحجز بايتًا واحدًا من الذاكرة ويخزِّن فيه قيمة محرف.
  • النوع double: يحجز أربعة بايتات (32 بت) من الذاكرة فقط في لوحات أردوينو Uno (والتي تعتمد على متحكمات ATMega) أو ثمانية بايتات (64 بت) في اللوحات Due لتخزين عدد عشري فيها.
  • النوع float: يحجز أربعة بايتات (32 بت) من الذاكرة لتخزين عدد عشري فيها.
  • النوع long: يحجز حجمًا كبيرًا من الذاكرة مقداره 4 بايت يستعمل لتخزين الأعداد الصحيحة التي تتسم بأنَّها طويلة.
  • النوع short: يحجز في جميع لوحات أردوينو (التي تعتمد على المتحكمات ATMega و ARM) حجمًا من الذاكرة مقداره 16 بت (2 بايت) لتخزين عدد قصير فيه.
  • النوع string: يمثِّل سلسلةً نصيةً مؤلفةً من عدة محارف مرتبطة مع بعضها بعضًا. تُستعمَل مصفوفة من المحارف لتخزين هذا النوع من البيانات واستدعائها والتعامل معها لاحقًا.
  • النوع unsigned char: يحجز حجمًا من الذاكرة مقداره 1 بايت فقط.
  • النوع unsigned int: يحجز حجمًا من الذاكرة مقداره 2 بايت في لوحات أردونيو Uno واللوحات التي تعتمد على متحكمات ATMega أو 4 بايت في لوحات أردوينو Due لتخزين عدد صحيح عديم الإشارة فيها.
  • النوع unsigned long: يحجز حجمًا كبيرًا من الذاكرة مقداره 4 بايت يُستعمَل لتخزين الأعداد الصحيحة عديمة الإشارة التي تتسم بأنَّها طويلة.
  • النوع word: يُخزِّن أعدادًا عديم الإشارة بحجم 2 بايت.

مصادر