#csharp_for_beginners
در زبان برنامهنویسی سی شارپ، انواع دادهای عددی صحیح (Integral Numeric Types) برای نمایش اعداد صحیح بدون قسمت اعشاری استفاده میشوند. این انواع دادهای بخش جداییناپذیری از عملیات ریاضی، شمارش، محاسبه شاخص آرایهها، و کنترل جریان برنامه هستند. در این مقاله با جزئیات کامل انواع دادهای صحیح، ویژگیها، تفاوتها و کاربردهای آنها آشنا خواهیم شد.
دستهبندی انواع عددی صحیح
انواع عددی صحیح در سی شارپ به دو دسته اصلی تقسیم میشوند:
۱. انواع علامتدار (Signed): میتوانند اعداد منفی و مثبت را نمایش دهند.
۲. انواع بدون علامت (Unsigned): فقط اعداد مثبت و صفر را پشتیبانی میکنند.
در جدول زیر، لیستی از انواع دادهای صحیح در سی شارپ به همراه ویژگیهای کلیدی آنها آمده است:
sbyte - 8 بیت
byte - 8 بیت
short - 16 بیت
ushort - 16 بیت
int - 32 بیت
uint - 32 بیت
long - 64 بیت
ulong - 64 بیت
nint - 32 یا 64 بیت (وابسته به معماری)
nuint - 32 یا 64 بیت (وابسته به معماری)
ویژگیهای عمومی انواع عددی صحیح
تمامی انواع بالا ویژگیهای مشترک زیر را دارند:
• نوع مقدار (Value Type): برخلاف کلاسها، این نوعها مستقیماً مقدار را نگهداری میکنند، نه اشاره به آن.
• مقدار پیشفرض: برای همه این نوعها مقدار پیشفرض برابر صفر (0) است.
• ثابتهای MinValue و MaxValue: هر نوع دارای دو ثابت برای نمایش کمترین و بیشترین مقدار قابل نگهداری است.
• پشتیبانی از عملیات ریاضی: از جمله +, -, *, /, %، عملیات بیتی مانند &, |, ^, ~، عملیات مقایسهای مثل <, >, ==, !=، و عملیات شیفت <<, >>.
انواع nint و nuint
این دو نوع در نسخههای جدید سی شارپ معرفی شدهاند و برای سناریوهایی مناسباند که اندازه نوع باید متناسب با معماری سیستم (32 یا 64 بیت) باشد، مانند کار با اشارهگرها یا توابع سطح پایین سیستم عامل. این نوعها بهترتیب معادل با IntPtr و UIntPtr در .NET هستند.
استفاده از لیترالهای عددی
در سی شارپ میتوان از لیترالها برای مقداردهی مستقیم استفاده کرد. بهعنوان مثال:int a = 100;
uint b = 100u;
long c = 100L;
ulong d = 100UL;
تبدیل نوع (Type Conversion)
هنگام تبدیل میان انواع عددی صحیح، باید به موارد زیر توجه کرد:
• تبدیل ضمنی (Implicit): زمانی که داده از نوع کوچکتر به نوع بزرگتر تبدیل میشود (مثلاً int به long)، بدون نیاز به دستور خاص.
• تبدیل صریح (Explicit): در حالت معکوس (مثلاً long به int)، به تبدیل صریح یا cast نیاز است و ممکن است دقت از بین برود.
int x = 123;
long y = x; // تبدیل ضمنی
long a = 1000L;
int b = (int)a; // تبدیل صریح
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______