اعداد صحیح (Integers)
انواع مختلف اعداد صحیح در پاسکال، محدوده هر کدام، MaxInt و مفهوم سرریز.
چرا یک نوع integer کافی نیست؟
اعداد صحیح در حافظه با بیت ذخیره میشوند — هرچه بیت بیشتر، محدوده بزرگتر. پاسکال انواع مختلفی دارد تا شما بسته به نیاز، حافظه و محدوده مناسب انتخاب کنید:
| نوع | حجم | محدوده |
|---|---|---|
byte | ۱ بایت | ۰ تا ۲۵۵ |
shortint | ۱ بایت | -۱۲۸ تا ۱۲۷ |
word | ۲ بایت | ۰ تا ۶۵,۵۳۵ |
smallint | ۲ بایت | -۳۲,۷۶۸ تا ۳۲,۷۶۷ |
<strong>integer</strong> | ۴ بایت | -۲,۱۴۷,۴۸۳,۶۴۸ تا ۲,۱۴۷,۴۸۳,۶۴۷ |
int64 | ۸ بایت | حدود ±۹.۲ × ۱۰۱۸ |
در ۹۹٪ مواقع همان
integer کافی است. برای اعداد خیلی بزرگ (مثل محاسبات نجومی) از int64 و برای صرفهجویی حافظه در آرایههای بزرگ از byte استفاده کنید.MaxInt — بزرگترین integer
begin
writeln(MaxInt); { 2147483647 }
end;
سرریز (Overflow)
اگر از محدوده نوع عبور کنید، مقدار «میپیچد» (سرریز) و نتیجه غلط میشود:
var
b: byte;
begin
b := 255;
b := b + 1; { سرریز! مقدار میپیچد به 0 }
writeln(b);
end;
اعداد مثبت و منفی
var
t1, t2, diff: integer;
begin
t1 := 20; { دمای تهران }
t2 := -5; { دمای تبریز }
diff := t1 - t2;
writeln('اختلاف دما: ', diff); { 25 }
end;
عملیات روی اعداد صحیح
writeln(7 + 3); { 10 }
writeln(7 - 3); { 4 }
writeln(7 * 3); { 21 }
writeln(7 div 3); { 2 — تقسیم صحیح }
writeln(7 mod 3); { 1 — باقیمانده }
div و mod دوستهای صمیمی ریاضیاتاند: div خارجقسمت صحیح و mod باقیمانده تقسیم را میدهد. مثلاً ۷ سیب بین ۳ نفر: هرکدام ۲ سیب (7 div 3) و ۱ سیب اضافه میماند (7 mod 3).خلاصه
integerپیشفرض و کافی برای اکثر کارهاMaxInt= بزرگترین عدد integerdivخارجقسمت،modباقیمانده- مراقب سرریز در انواع کوچک (byte و...) باشید
این مبحث بخشی از دوره آموزش کامل پاسکال است.