اعداد ثابت عرض (Fixed-width Integers)
روی بعضی سیستم ها اندازه «عدد صحیح (int)» فرق دارد. بنابراین، برنامه رفتار یکسانی ندارد. با «اعداد ثابت عرض» از <stdint.h> اندازه همیشه ثابت می ماند. این یعنی تعداد بیت ها دقیق است.
چرا اعداد ثابت عرض مهم اند؟
این نوع ها اندازه مشخص دارند؛ مثل int8_t با 8 بیت یا int32_t با 32 بیت. نسخه بدون علامت با پیشوند u می آید؛ مانند uint16_t. بدون علامت یعنی فقط صفر تا مثبت ها.
نمونه استفاده از انواع ثابت عرض
با این مثال، تعریف و چاپ را می بینی. دقت کن که برای 64 بیت از %lld استفاده شده است.
#include <stdio.h>
#include <stdint.h>
int main() {
int8_t a = 100;
int16_t b = 30000;
int32_t c = 2000000;
int64_t d = 9000000000;
printf("%d\n", a);
printf("%d\n", b);
printf("%d\n", c);
printf("%lld\n", d);
return 0;
}
کی از اعداد ثابت عرض استفاده کنیم؟
وقتی اندازه دقیق مهم است. مثلاً در فایل ها، شبکه ها، یا سیستم های توکار. در برنامه های معمولی، همان int کافی است.
مثال واقعی: درصد باتری با uint8_t
درصد باتری بین 0 تا 100 است. پس uint8_t کافی است و حافظه کم تری می گیرد.
#include <stdio.h>
#include <stdint.h>
int main() {
uint8_t battery = 87;
printf("Battery level is %u out of 100\n", battery);
return 0;
}
گام های عملی
- هدر <stdint.h> را اضافه کن.
- نوع دقیق را انتخاب کن؛ مثلاً int16_t.
- برای مثبت ها از انواع u استفاده کن.
نکته: برای کار با بیت ها، به عملگرهای بیتی سر بزن. همچنین بخش کلاس های ذخیره سازی مفهوم طول عمر متغیر را روشن می کند. شرح کامل اعداد ثابت عرض همین جاست.
جمع بندی سریع
- اندازه int همیشه یکسان نیست.
- stdint.h اندازه دقیق می دهد.
- uint8_t برای بازه کوچک عالی است.
- برای 64 بیت از %lld استفاده کن.