unsigned int در آردوینو Uno (و بقیهی بردهای مبتنی بر ATMega)، همانند int ها مقداری 2 بایتی را در خود ذخیره میکند. اما unsigned integer (اعداد صحیح بدون علامت)، فقط مقادیر مثبت را ذخیره میکنند. این نوعداده، محدودهی مفیدی از 0 تا 65,535 (1-(16^2)) را دارد.
آردوینو Due مقداری 4 بایتی (32 بیتی) را ذخیره میکند که دارای محدودهی 0 تا 4,294,967,295 (1-(32^2)) است.
تفاوت بین unsigned ints و ints (علامتدار یا signed) در روشی است که با آن، بالاترین بیت (بیت علامت) را تفسیر میکنند. در نوعدادهی int آردوینو (که علامتدار است)، اگر بالاترین بیت “1” باشد، این عدد بهعنوان عددی منفی تفسیر میشود. 15 بیت دیگر نیز با روش مکمل دو تفسیر میشوند.
مثال:
1 | unsigned int ledPin = 13; |
سینتکس (نحو):
1 | unsigned int var = val; |
- var: نام متغیرِ از نوع unsigned int.
- val: مقداری که به متغیر نسبت میدهید.
نکته:
وقتیکه متغیرها از مقدار حداکثری (ماکسیمم) خود عبور میکنند، به مقدار حداقلی (مینیمم) خود برمیگردند. (مثلا متغیری را در نظر بگیرید که از 0 تا عدد 99 را میتواند ذخیره کند. اگر متغیر عدد 99 را داشته باشد و سپس بهعلاوه 1 شود، مقدار متغیر به 0 بازخواهد گشت.) به این رفتار، رول اُوِر (roll over) گفته میشود. رول اُوِر در هر دو جهت رخ میدهد. برای درک بهتر رول اور، مثال زیر را مشاهده کنید:
1 2 3 4 5 6 7 8 9 10 | unsigned int x x = 0; x = x - 1; // رول اور در جهت منفی // متغیر ایکس در حال حاضر مقدار //65535 // را دارد. x = x + 1; // رول اور // متغیر ایکس در حال حاضر مقدار 0 را دارد. |