اعداد صحیح (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).

خلاصه

این مبحث بخشی از دوره آموزش کامل پاسکال است.

ابزارهای مرتبط