کتابخانه‌ی استاندارد · عدد و مجموعه

عدد بزرگ bigint

عدد صحیح با اندازه‌ی نامحدود: فاکتوریل‌های بزرگ، رمزنگاری، و هر حسابی که در ۶۴ بیت جا نمی‌شود.

واردسازی عدد بزرگ
در این صفحه
  1. گونه‌ها
  2. روال‌ها

صحیح۶۴ تا حدود نُه میلیارد میلیارد جا دارد. برای عددهای بزرگ‌تر، مثل فاکتوریل ۳۰ یا کلیدهای رمزنگاری، از عدد بزرگ.صحیح استفاده کنید. اندازه‌ی این عدد فقط به حافظه محدود است.

بیشتر روال‌ها یک عدد تازه برمی‌گردانند و ورودی‌ها را دست نمی‌زنند. روال‌هایی که نامشان «به»، «از» یا «در جا» دارد (مثل افزودن به) خود عدد را تغییر می‌دهند و در حلقه‌ها سریع‌ترند، چون حافظه‌ی تازه نمی‌گیرند. عددها حافظه می‌گیرند؛ آن‌هایی را که دیگر لازم ندارید با آزادسازی رها کنید.

گونه‌ها

صحیح Int

ساختار صحیح
یک عدد صحیح با اندازه‌ی دلخواه. آن را با روال‌هایی مثل از صحیح یا تجزیه بسازید.
نامانگلیسیگونهتوضیح
negnegمنطقی = نادرستاگر عدد منفی باشد، درست است.
magmagوکتور<طبیعی۳۲>قدرمطلق عدد، به شکل تکه‌های ۳۲ بیتی از کم‌ارزش به پرارزش.
bigint-Int.salam
واردسازی عدد بزرگ

روال ریشه:
    ناپایا الف := عدد بزرگ.از صحیح(۱۲۳۴۵۶۷۸۹)
    ناپایا ب := عدد بزرگ.توان(عدد بزرگ.از صحیح(۲)، ۱۰۰)
    دیرکن الف.آزادسازی()
    دیرکن ب.آزادسازی()
    سرچاپ ب.به رشته()
    سرچاپ الف.صفر است()، الف.علامت()، الف.فرد است()، الف.زوج است()
    سرچاپ ب.طول بیت()، ب.شمار لخت()
    ج := الف.همانند()
    سرچاپ ج.به رشته()
پایان
خروجی1267650600228229401496703205376 false 1 true false 101 4 123456789

آزادسازی free

روال آزادسازی()
حافظه‌ی عدد را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

صفر است is_zero

روال صفر است(): منطقی
اگر عدد صفر باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

علامت sign

روال علامت(): صحیح
علامت عدد: منفی یک، صفر یا یک.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

فرد است is_odd

روال فرد است(): منطقی
اگر عدد فرد باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

زوج است is_even

روال زوج است(): منطقی
اگر عدد زوج باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

طول بیت bit_len

روال طول بیت(): صحیح
تعداد بیت‌های لازم برای نوشتن قدرمطلق عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

شمار لخت limb_count

روال شمار لخت(): صحیح
تعداد تکه‌های ۳۲ بیتی که عدد در حافظه گرفته است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

همانند clone

روال همانند(): صحیح
رونوشتی مستقل از عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

به رشته to_str

روال به رشته(): رشته
عدد را به متن دهدهی تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

روال‌ها

اشتراک بیتی And

روال اشتراک بیتی(a: صحیح، b: صحیح): صحیح
«و»ی بیتی دو عدد.
bigint-And.salam
واردسازی عدد بزرگ

روال ریشه:
    الف := عدد بزرگ.از صحیح(۱۲)
    ب := عدد بزرگ.از صحیح(۱۰)
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.اشتراک بیتی(الف، ب))، عدد بزرگ.به رشته(عدد بزرگ.اجتماع بیتی(الف، ب))، عدد بزرگ.به رشته(عدد بزرگ.یای انحصاری(الف، ب))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.اشتراک با نقیض(الف، ب))، عدد بزرگ.به رشته(عدد بزرگ.نقیض بیتی(الف))
    سرچاپ عدد بزرگ.شمار یک‌ها(الف)، عدد بزرگ.صفرهای پایانی(الف)
پایان
خروجی8 14 6 4 -13 2 2

اجتماع بیتی Or

روال اجتماع بیتی(a: صحیح، b: صحیح): صحیح
«یا»ی بیتی دو عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-And.salam

یای انحصاری Xor

روال یای انحصاری(a: صحیح، b: صحیح): صحیح
«یای انحصاری» بیتی دو عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-And.salam

اشتراک با نقیض AndNot

روال اشتراک با نقیض(a: صحیح، b: صحیح): صحیح
بیت‌هایی از عدد اول که در عدد دوم صفرند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-And.salam

نقیض بیتی Not

روال نقیض بیتی(x: صحیح): صحیح
نقیض بیتی؛ برای عددهای منفی مثل مکمل دو رفتار می‌کند، پس نقیض ۱۲ برابر −۱۳ است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-And.salam

شمار یک‌ها PopCount

روال شمار یک‌ها(x: صحیح): صحیح
تعداد بیت‌های یک در قدرمطلق عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-And.salam

صفرهای پایانی TrailingZeros

روال صفرهای پایانی(x: صحیح): صحیح
تعداد صفرهای پشت‌سرهم از کم‌ارزش‌ترین بیت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-And.salam

صفر Zero

روال صفر(): صحیح
عدد صفر.
bigint-Add.salam
واردسازی عدد بزرگ

روال ریشه:
    الف := عدد بزرگ.از صحیح(۹۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰)
    ب := عدد بزرگ.از صحیح بی‌علامت(۱۸۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ برگردان طبیعی۶۴)
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.جمع(الف، ب))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.تفریق(الف، ب))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.ضرب(الف، ب))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.مربع(الف))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.جمع صحیح(الف، ۱))، عدد بزرگ.به رشته(عدد بزرگ.تفریق صحیح(الف، ۱))، عدد بزرگ.به رشته(عدد بزرگ.ضرب صحیح(الف، ۲))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.قرینه(الف))، عدد بزرگ.به رشته(عدد بزرگ.قدرمطلق(عدد بزرگ.قرینه(الف)))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.شیفت چپ(عدد بزرگ.یک()، ۷۰))، عدد بزرگ.به رشته(عدد بزرگ.شیفت راست(الف، ۶۰))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.صفر())، عدد بزرگ.به رشته(عدد بزرگ.توان ده(۲۰))
پایان
خروجی27000000000000000000 -9000000000000000000 162000000000000000000000000000000000000 81000000000000000000000000000000000000 9000000000000000001 8999999999999999999 18000000000000000000 -9000000000000000000 9000000000000000000 1180591620717411303424 7 0 100000000000000000000

یک One

روال یک(): صحیح
عدد یک.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

از صحیح FromInt

روال از صحیح(v: صحیح۶۴): صحیح
از یک صحیح۶۴ عدد بزرگ می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

از صحیح بی‌علامت FromUint

روال از صحیح بی‌علامت(v: طبیعی۶۴): صحیح
از یک طبیعی۶۴ عدد بزرگ می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

همانند Clone

روال همانند(x: صحیح): صحیح
رونوشتی مستقل از عدد.
bigint-Cmp.salam
واردسازی عدد بزرگ

روال ریشه:
    الف := عدد بزرگ.از صحیح(۵)
    ب := عدد بزرگ.از صحیح(-۹)
    سرچاپ عدد بزرگ.مقایسه(الف، ب)، عدد بزرگ.مقایسه قدرمطلق(الف، ب)
    سرچاپ عدد بزرگ.یکسان است(الف، الف)، عدد بزرگ.کمتر است(الف، ب)، عدد بزرگ.بیشتر است(الف، ب)
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.کمینه(الف، ب))، عدد بزرگ.به رشته(عدد بزرگ.بیشینه(الف، ب))
    سرچاپ عدد بزرگ.یکسان با صحیح است(الف، ۵)، عدد بزرگ.صفر است(الف)، عدد بزرگ.علامت(ب)
    سرچاپ عدد بزرگ.فرد است(الف)، عدد بزرگ.زوج است(الف)، عدد بزرگ.طول بیت(الف)، عدد بزرگ.بیت(الف، ۱)
    ج := عدد بزرگ.همانند(ب)
    سرچاپ عدد بزرگ.به رشته(ج)
پایان
خروجی1 -1 true false true -9 5 true false -1 true false 3 0 -9

آزادسازی Free

روال آزادسازی(x &: صحیح)
حافظه‌ی عدد را آزاد می‌کند.
bigint-AddTo.salam
واردسازی عدد بزرگ

روال ریشه:
    ناپایا ج := عدد بزرگ.صفر()
    دیرکن عدد بزرگ.آزادسازی(ج)
    عدد بزرگ.تنظیم صحیح(ج، ۱۰)
    عدد بزرگ.افزودن به(ج، عدد بزرگ.از صحیح(۵))
    عدد بزرگ.کاستن از(ج، عدد بزرگ.از صحیح(۳))
    عدد بزرگ.ضرب در(ج، عدد بزرگ.از صحیح(۴))
    سرچاپ عدد بزرگ.به رشته(ج)
    عدد بزرگ.افزودن صحیح به(ج، ۲)
    عدد بزرگ.ضرب در صحیح(ج، ۱۰)
    سرچاپ عدد بزرگ.به رشته(ج)
    عدد بزرگ.قرینه‌سازی(ج)
    عدد بزرگ.شیفت چپ در جا(ج، ۱)
    سرچاپ عدد بزرگ.به رشته(ج)
    عدد بزرگ.شیفت راست در جا(ج، ۲)
    سرچاپ عدد بزرگ.به رشته(ج)
    عدد بزرگ.تنظیم(ج، عدد بزرگ.از صحیح(۷))
    سرچاپ عدد بزرگ.به رشته(ج)
پایان
خروجی48 500 -1000 -250 7

صفر است IsZero

روال صفر است(x: صحیح): منطقی
اگر عدد صفر باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

علامت Sign

روال علامت(x: صحیح): صحیح
علامت عدد: منفی یک، صفر یا یک.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

طول بیت BitLen

روال طول بیت(x: صحیح): صحیح
تعداد بیت‌های قدرمطلق عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

بیت Bit

روال بیت(x: صحیح، i: صحیح): صحیح
بیت شماره‌ی i از قدرمطلق عدد را (صفر یا یک) برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

فرد است IsOdd

روال فرد است(x: صحیح): منطقی
اگر عدد فرد باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

زوج است IsEven

روال زوج است(x: صحیح): منطقی
اگر عدد زوج باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

مقایسه Cmp

روال مقایسه(a: صحیح، b: صحیح): صحیح
دو عدد را مقایسه می‌کند: منفی یک، صفر یا یک.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

مقایسه قدرمطلق CmpAbs

روال مقایسه قدرمطلق(a: صحیح، b: صحیح): صحیح
قدرمطلق دو عدد را مقایسه می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

یکسان است Equals

روال یکسان است(a: صحیح، b: صحیح): منطقی
اگر دو عدد برابر باشند، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

کمتر است Less

روال کمتر است(a: صحیح، b: صحیح): منطقی
اگر عدد اول کوچک‌تر باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

بیشتر است Greater

روال بیشتر است(a: صحیح، b: صحیح): منطقی
اگر عدد اول بزرگ‌تر باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

کمینه Min

روال کمینه(a: صحیح، b: صحیح): صحیح
کوچک‌تر از دو عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

بیشینه Max

روال بیشینه(a: صحیح، b: صحیح): صحیح
بزرگ‌تر از دو عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

یکسان با صحیح است EqualsInt

روال یکسان با صحیح است(a: صحیح، v: صحیح۶۴): منطقی
اگر عدد بزرگ با یک صحیح۶۴ برابر باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Cmp.salam

به رشته ToStr

روال به رشته(x: صحیح): رشته
عدد را به متن دهدهی تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

به رشته با پایه ToStrBase

روال به رشته با پایه(x: صحیح، base: صحیح): رشته
عدد را در مبنای دلخواه (۲ تا ۳۶) به متن تبدیل می‌کند.
bigint-Parse.salam
واردسازی عدد بزرگ

روال ریشه:
    ناپایا درست‌بود := نادرست
    ن := عدد بزرگ.تجزیه("123456789012345678901234567890"، درست‌بود)
    سرچاپ درست‌بود، عدد بزرگ.به رشته(ن)
    ش := عدد بزرگ.تجزیه با پایه("ff"، ۱۶، درست‌بود)
    سرچاپ درست‌بود، عدد بزرگ.به رشته(ش)، عدد بزرگ.به رشته با پایه(ش، ۲)، عدد بزرگ.به شانزده‌شانزدهی(ن)
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.تجزیه با پیش فرض("xyz"، ۱۰))
    ناپایا جا := نادرست
    ک := عدد بزرگ.به صحیح(ش، جا)
    سرچاپ ک، جا
    سرچاپ عدد بزرگ.به صحیح محدود(ن)، عدد بزرگ.به اعشاری(ن)
پایان
خروجیtrue 123456789012345678901234567890 true 255 11111111 18ee90ff6c373e0ee4e3f0ad2 0 255 true 9223372036854775807 1.2345678901234568e+29

به شانزده‌شانزدهی ToHex

روال به شانزده‌شانزدهی(x: صحیح): رشته
عدد را در مبنای شانزده به متن تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Parse.salam

تجزیه Parse

روال تجزیه(s: رشته، ok &: منطقی): صحیح
متن دهدهی را به عدد بزرگ تبدیل می‌کند. اگر متن عدد درستی نباشد، ok نادرست می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Parse.salam

تجزیه با پایه ParseBase

روال تجزیه با پایه(s: رشته، base: صحیح، ok &: منطقی): صحیح
متن را در مبنای دلخواه به عدد تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Parse.salam

تجزیه با پیش فرض ParseOr

روال تجزیه با پیش فرض(s: رشته، base: صحیح): صحیح
متن را در مبنای داده‌شده تجزیه می‌کند و اگر نشد، صفر برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Parse.salam

به صحیح ToInt

روال به صحیح(x: صحیح، ok &: منطقی): صحیح۶۴
عدد را به صحیح۶۴ تبدیل می‌کند؛ اگر جا نشود، ok نادرست می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Parse.salam

به صحیح محدود ToIntClamped

روال به صحیح محدود(x: صحیح): صحیح۶۴
عدد را به صحیح۶۴ تبدیل می‌کند و اگر جا نشود، بزرگ‌ترین یا کوچک‌ترین مقدار ممکن را می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Parse.salam

به اعشاری ToFloat

روال به اعشاری(x: صحیح): اعشار۶۴
عدد را به نزدیک‌ترین اعشار۶۴ تبدیل می‌کند؛ رقم‌های کم‌ارزش ممکن است از دست بروند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Parse.salam

طول بایت ByteLen

روال طول بایت(x: صحیح): صحیح
تعداد بایت‌های لازم برای نوشتن قدرمطلق عدد.
bigint-Bytes.salam
واردسازی عدد بزرگ
واردسازی حافظه

روال ریشه:
    ن := عدد بزرگ.از صحیح(۶۵۵۳۶)
    ط := عدد بزرگ.طول بایت(ن)
    سرچاپ ط
    بافر := حافظه.تخصیص(ط برگردان طبیعی۶۴)
    سرچاپ عدد بزرگ.به بایت‌ها(ن، بافر، ط)
    ب := عدد بزرگ.از بایت‌ها(بافر، ط)
    سرچاپ عدد بزرگ.به رشته(ب)
    حافظه.آزادسازی(بافر)
پایان
خروجی3 true 65536

از بایت‌ها FromBytes

روال از بایت‌ها(p: تهی*، n: صحیح): صحیح
عدد را از n بایت در حافظه (با ترتیب پرارزش اول) می‌سازد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Bytes.salam

به بایت‌ها ToBytes

روال به بایت‌ها(x: صحیح، out: تهی*، n: صحیح): منطقی
قدرمطلق عدد را در n بایت حافظه (پرارزش اول) می‌نویسد؛ اگر جا نشود، نادرست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Bytes.salam

توان Pow

روال توان(x: صحیح، e: صحیح): صحیح
عدد به توان e.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Int.salam

توان ده Pow10

روال توان ده(n: صحیح): صحیح
ده به توان n.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

توان پیمانه‌ای ModExp

روال توان پیمانه‌ای(base: صحیح، e: صحیح، m: صحیح): صحیح
باقیمانده‌ی base به توان e تقسیم بر m را به‌سرعت حساب می‌کند، بی‌آن‌که عدد بزرگ میانی ساخته شود؛ پایه‌ی رمزنگاری RSA.
bigint-ModExp.salam
واردسازی عدد بزرگ

روال ریشه:
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.فاکتوریل(۳۰))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.توان پیمانه‌ای(عدد بزرگ.از صحیح(۴)، عدد بزرگ.از صحیح(۱۳)، عدد بزرگ.از صحیح(۴۹۷)))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.ب م م(عدد بزرگ.از صحیح(۴۸)، عدد بزرگ.از صحیح(۱۸)))، عدد بزرگ.به رشته(عدد بزرگ.ک م م(عدد بزرگ.از صحیح(۴)، عدد بزرگ.از صحیح(۶)))
    ناپایا ا := عدد بزرگ.صفر()
    ناپایا ب := عدد بزرگ.صفر()
    گ := عدد بزرگ.ب م م گسترده(عدد بزرگ.از صحیح(۲۴۰)، عدد بزرگ.از صحیح(۴۶)، ا، ب)
    سرچاپ عدد بزرگ.به رشته(گ)، عدد بزرگ.به رشته(ا)، عدد بزرگ.به رشته(ب)
    ناپایا شد := نادرست
    و۱ := عدد بزرگ.وارون پیمانه‌ای(عدد بزرگ.از صحیح(۳)، عدد بزرگ.از صحیح(۱۱)، شد)
    سرچاپ شد، عدد بزرگ.به رشته(و۱)
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.جذر(عدد بزرگ.توان ده(۲۰)))
پایان
خروجی265252859812191058636308480000000 445 6 12 2 -9 47 true 4 10000000000

ب م م Gcd

روال ب م م(a: صحیح، b: صحیح): صحیح
بزرگ‌ترین مقسوم‌علیه مشترک.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-ModExp.salam

ک م م Lcm

روال ک م م(a: صحیح، b: صحیح): صحیح
کوچک‌ترین مضرب مشترک.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-ModExp.salam

ب م م گسترده ExtGcd

روال ب م م گسترده(a: صحیح، b: صحیح، x &: صحیح، y &: صحیح): صحیح
ب.م.م گسترده: علاوه بر ب.م.م، ضریب‌های x و y را هم پیدا می‌کند طوری که a·x + b·y برابر ب.م.م شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-ModExp.salam

وارون پیمانه‌ای ModInverse

روال وارون پیمانه‌ای(a: صحیح، m: صحیح، ok &: منطقی): صحیح
وارون پیمانه‌ای: عددی که ضربش در a به پیمانه‌ی m یک شود. اگر وجود نداشته باشد، ok نادرست می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-ModExp.salam

جذر Sqrt

روال جذر(x: صحیح): صحیح
جذر صحیح؛ بزرگ‌ترین عددی که مربعش از عدد بزرگ‌تر نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-ModExp.salam

فاکتوریل Factorial

روال فاکتوریل(n: صحیح): صحیح
فاکتوریل n، بدون محدودیت اندازه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-ModExp.salam

قرینه Neg

روال قرینه(x: صحیح): صحیح
قرینه‌ی عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

قدرمطلق Abs

روال قدرمطلق(x: صحیح): صحیح
قدرمطلق عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

جمع Add

روال جمع(a: صحیح، b: صحیح): صحیح
جمع دو عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

تفریق Sub

روال تفریق(a: صحیح، b: صحیح): صحیح
تفریق دو عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

ضرب Mul

روال ضرب(a: صحیح، b: صحیح): صحیح
ضرب دو عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

مربع Sqr

روال مربع(x: صحیح): صحیح
مربع عدد؛ از ضرب عدد در خودش سریع‌تر است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

جمع صحیح AddInt

روال جمع صحیح(a: صحیح، v: صحیح۶۴): صحیح
جمع با یک عدد صحیح معمولی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

تفریق صحیح SubInt

روال تفریق صحیح(a: صحیح، v: صحیح۶۴): صحیح
تفریق یک عدد صحیح معمولی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

ضرب صحیح MulInt

روال ضرب صحیح(a: صحیح، v: صحیح۶۴): صحیح
ضرب در یک عدد صحیح معمولی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

شیفت چپ Shl

روال شیفت چپ(x: صحیح، k: صحیح): صحیح
شیفت به چپ به اندازه‌ی k بیت؛ یعنی ضرب در ۲ به توان k.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

شیفت راست Shr

روال شیفت راست(x: صحیح، k: صحیح): صحیح
شیفت به راست به اندازه‌ی k بیت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Add.salam

تنظیم Set

روال تنظیم(x &: صحیح، src: صحیح)
مقدار src را در x می‌ریزد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

تنظیم صحیح SetInt

روال تنظیم صحیح(x &: صحیح، v: صحیح۶۴)
مقدار یک عدد صحیح معمولی را در x می‌ریزد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

افزودن به AddTo

روال افزودن به(x &: صحیح، y: صحیح)
y را به x اضافه می‌کند و خود x تغییر می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

کاستن از SubFrom

روال کاستن از(x &: صحیح، y: صحیح)
y را از x کم می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

ضرب در MulBy

روال ضرب در(x &: صحیح، y: صحیح)
x را در y ضرب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

افزودن صحیح به AddIntTo

روال افزودن صحیح به(x &: صحیح، v: صحیح۶۴)
یک عدد صحیح معمولی را به x اضافه می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

ضرب در صحیح MulIntBy

روال ضرب در صحیح(x &: صحیح، v: صحیح۶۴)
x را در یک عدد صحیح معمولی ضرب می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

قرینه‌سازی NegateIn

روال قرینه‌سازی(x &: صحیح)
علامت x را برعکس می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

شیفت چپ در جا ShlBy

روال شیفت چپ در جا(x &: صحیح، k: صحیح)
x را در جا به چپ شیفت می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

شیفت راست در جا ShrBy

روال شیفت راست در جا(x &: صحیح، k: صحیح)
x را در جا به راست شیفت می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-AddTo.salam

تقسیم با باقیمانده DivMod

روال تقسیم با باقیمانده(a: صحیح، b: صحیح، q &: صحیح، r &: صحیح): منطقی
خارج‌قسمت و باقیمانده را با هم در q و r می‌ریزد؛ خارج‌قسمت به سمت صفر گرد می‌شود. اگر مقسوم‌علیه صفر باشد، نادرست برمی‌گرداند.
bigint-Div.salam
واردسازی عدد بزرگ

روال ریشه:
    الف := عدد بزرگ.از صحیح(-۱۷)
    ب := عدد بزرگ.از صحیح(۵)
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.تقسیم(الف، ب))، عدد بزرگ.به رشته(عدد بزرگ.باقیمانده(الف، ب))
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.تقسیم کف(الف، ب))، عدد بزرگ.به رشته(عدد بزرگ.باقیمانده کف(الف، ب))، عدد بزرگ.به رشته(عدد بزرگ.پیمانه(الف، ب))
    ناپایا خ := عدد بزرگ.صفر()
    ناپایا م := عدد بزرگ.صفر()
    سرچاپ عدد بزرگ.تقسیم با باقیمانده(الف، ب، خ، م)، عدد بزرگ.به رشته(خ)، عدد بزرگ.به رشته(م)
    سرچاپ عدد بزرگ.تقسیم کف با باقیمانده(الف، ب، خ، م)، عدد بزرگ.به رشته(خ)، عدد بزرگ.به رشته(م)
    سرچاپ عدد بزرگ.تقسیم با باقیمانده(الف، عدد بزرگ.صفر()، خ، م)
    ناپایا ب۲ := ۰ برگردان صحیح۶۴
    سرچاپ عدد بزرگ.به رشته(عدد بزرگ.تقسیم صحیح(عدد بزرگ.از صحیح(۱۰۰)، ۷، ب۲))، ب۲، عدد بزرگ.پیمانه صحیح(عدد بزرگ.از صحیح(۱۰۰)، ۷)
پایان
خروجی-3 -2 -4 3 3 true -3 -2 true -4 3 false 14 2 2

تقسیم Div

روال تقسیم(a: صحیح، b: صحیح): صحیح
خارج‌قسمت، گرد شده به سمت صفر (مثل C).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Div.salam

باقیمانده Rem

روال باقیمانده(a: صحیح، b: صحیح): صحیح
باقیمانده، هم‌علامت با مقسوم.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Div.salam

تقسیم کف با باقیمانده FloorDivMod

روال تقسیم کف با باقیمانده(a: صحیح، b: صحیح، q &: صحیح، r &: صحیح): منطقی
مثل تقسیم با باقیمانده، ولی خارج‌قسمت رو به پایین گرد می‌شود و باقیمانده هم‌علامت مقسوم‌علیه است (مثل پایتون).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Div.salam

تقسیم کف FloorDiv

روال تقسیم کف(a: صحیح، b: صحیح): صحیح
خارج‌قسمت، گرد شده رو به پایین.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Div.salam

باقیمانده کف FloorMod

روال باقیمانده کف(a: صحیح، b: صحیح): صحیح
باقیمانده‌ی تقسیم کف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Div.salam

پیمانه Mod

روال پیمانه(a: صحیح، m: صحیح): صحیح
باقیمانده‌ی نامنفی به پیمانه‌ی m؛ برای حساب پیمانه‌ای.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Div.salam

تقسیم صحیح DivModInt

روال تقسیم صحیح(a: صحیح، v: صحیح۶۴، rem &: صحیح۶۴): صحیح
تقسیم بر یک عدد صحیح معمولی؛ باقیمانده در rem ریخته می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Div.salam

پیمانه صحیح ModInt

روال پیمانه صحیح(a: صحیح، v: صحیح۶۴): صحیح۶۴
باقیمانده‌ی تقسیم بر یک عدد صحیح معمولی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: bigint-Div.salam