عد

عدد صحیح در Cairo

1 تمرین

درباره‌ی عدد صحیح

integer عددی است که جزء کسری ندارد. در Cairo، اعلان نوع اعداد صحیح نشان می‌دهد که برنامه‌نویس می‌تواند از چند بیت برای ذخیره‌ی مقدار استفاده کند.

اعداد صحیح بدون علامت فقط می‌توانند اعداد مثبت و عدد ۰ (صفر) را نمایش دهند، که می‌تواند در برخی زمینه‌های برنامه‌نویسی، مانند ایندکس کردن آرایه و مدیریت حافظه، مفید باشد.

Cairo همچنین از اعداد صحیح علامت‌دار پشتیبانی می‌کند که با پیشوند i شروع می‌شوند. این اعداد می‌توانند هم مقادیر مثبت و هم مقادیر منفی را نمایش دهند و اندازه‌هایشان از i8 تا i128 متغیر است. هر نوع علامت‌دار می‌تواند اعدادی از $-2^{n-1}$ تا $2^{n-1} - 1$ را، شامل دو سر بازه، ذخیره کند که در آن $n$ تعداد بیت‌هایی است که آن نوع استفاده می‌کند. برای مثال، یک i8 می‌تواند اعدادی از $-2^7$ تا $2^7 - 1$ را ذخیره کند، که برابر است با $-128$ تا $127$.

طول بدون علامت علامت‌دار
۸ بیتی u8 i8
۱۶ بیتی u16 i16
۳۲ بیتی u32 i32
۶۴ بیتی u64 i64
۱۲۸ بیتی u128 i128
۲۵۶ بیتی u256 ------

یک نوع عدد صحیح خاص هم وجود دارد به اسم usize که در حال حاضر فقط یک نام مستعار برای u32 است. این نوع ممکن است در آینده، وقتی Cairo بتواند به MLIR (Multi-Level Intermediate Representation) کامپایل شود، نقش متمایزتری ایفا کند.

لیترال‌های عدد صحیح در Cairo

می‌توانید لیترال‌های عدد صحیح را به هر یک از شکل‌های نشان‌داده‌شده در جدول زیر بنویسید. توجه کنید که لیترال‌های عددی که می‌توانند از چند نوع عددی باشند، اجازه می‌دهند با یک پسوند نوع، مانند 57_u8، نوع را مشخص کنید. همچنین می‌توان برای خوانایی بهتر کد، از یک جداکننده‌ی دیداری _ در لیترال‌های عددی استفاده کرد.

لیترال‌های عددی مثال
دهدهی 98222
شانزده‌دهی 0xff
هشت‌دهی 0o04321
دودویی 0b01

حالا از کجا می‌دانید کدام نوع عدد صحیح را باید به کار ببرید؟ سعی کنید بیشترین مقداری را که عدد صحیح شما می‌تواند داشته باشد تخمین بزنید و اندازه‌ی مناسب را انتخاب کنید. اصلی‌ترین جایی که از usize استفاده می‌کنید، هنگام ایندکس کردن نوعی مجموعه است.

عملیات عددی

Cairo عملیات ریاضی پایه‌ای را که برای همه‌ی انواع عدد صحیح انتظار دارید پشتیبانی می‌کند: جمع، تفریق، ضرب، تقسیم و باقی‌مانده. در تقسیم اعداد صحیح، نتیجه به سمت صفر و تا نزدیک‌ترین عدد صحیح بریده می‌شود. کد زیر نشان می‌دهد که چگونه هر عملیات عددی را در یک دستور let به کار می‌برید:

fn main() {
    // addition
    let sum = 5_u128 + 10_u128;

    // subtraction
    let difference = 95_u128 - 4_u128;

    // multiplication
    let product = 4_u128 * 30_u128;

    // division
    let quotient = 56_u128 / 32_u128; // result is 1
    let quotient = 64_u128 / 32_u128; // result is 2

    // remainder
    let remainder = 43_u128 % 5_u128; // result is 3
}

هر عبارت در این دستورها از یک عملگر ریاضی استفاده می‌کند و به یک مقدار واحد ارزیابی می‌شود که سپس به یک متغیر متصل می‌شود.

فهرست همه‌ی عملگرهایی که Cairo ارائه می‌دهد را می‌توانید در The Cairo Book پیدا کنید.

ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

عدد صحیح را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین عدد صحیح قفل 2 تمرین دیگر را باز کنید