اعداد | گولنگ به زبان ساده
6 ماه پیش
در این قسمت با دیتا تایپ های عددی آشنا میشیم و یاد میگیریم چطور ازشون استفاده کنیم.
اعداد زبان Go به سه دسته زیر تقسیم می شوند:
- اعداد صحیح (int)
- اعداد اعشاری (float)
- اعداد مختلط (complex)
اعداد صحیح
عدد صحیح به عددی گفته می شود که بخش اعشاری ندارد. اعداد صحیح خود به دو دسته علامت دار (signed) و بدون علامت (unsigned) تقسیم می شوند. حالت بدون علامت قابلیت ذخیره اعداد منفی را ندارد.
گولنگ بر حسب میزان حافظه مورد نیاز حالت های ۸ ,۱۶ ,۳۲ و ۶۴ بیتی از اعداد صحیح رو ارائه می دهد. مثلا در ۸ بیت میتونیم ۲۸ = ۲۵۶
عدد ذخیره کنیم که برای حالت علامت دار از منفی ۱۲۸ تا مثبت ۱۲۷ را میتوان ذخیره کرد. و برای عدد های بدون علامت از ۰ تا ۲۵۵ را میتوان ذخیره کرد.
دو نوع دیگر از اعداد صحیح با نام int
و uint
وجود دارد که اندازه آنها بستگی به معماری سیستمی دارد که برنامه روی آن اجرا میشود.
در سیستم های ۳۲ بیتی اندازه int
و uint
برابر با ۳۲ بیت و در سیستم های ۶۴ بیتی اندازه آنها برابر با ۶۴ بیت خواهد بود.
نوع int
به صورت پیشفرض برای اعداد صحیح در Go مورد استفاده قرار میگیرد.
در اینجا از پکیج unsafe
برای اندازه گیری میزان حافظه هرکدام از متغیرها استفاده کردیم.
- اگر برنامه بالا را در یک سیستم 64 بیتی اجرا کنید، اندازه a برابر با 8 بایت (64 بیت) خواهد بود، در حالی که اندازه b همیشه برابر با 4 بایت (32 بیت) است.
- اگر برنامه بالا را در یک سیستم 32 بیتی اجرا کنید، اندازه a برابر با 4 بایت (32 بیت) خواهد بود، در حالی که اندازه b همچنان 4 بایت (32 بیت) است.
این تفاوت نشان میدهد که چرا ممکن است در برخی موارد بخواهید از اندازه دقیق اطمینان حاصل کنید، به ویژه در کاربردهایی که نیاز به ثبات و پیشبینیپذیری اندازه دادهها دارند.
اعداد اعشاری
اعداد اعشاری در گولنگ در دو حالت ۳۲ و ۶۴ بیتی وجود دارند. در حالت ۳۲ بیتی تا ۷ رقم اعشار و در حالت ۶۴ بیتی تا ۱۶ رقم اعشار را میتوان ذخیره کرد.
در صورتی که اندازه حافظه را مشخص نکنیم به صورت پیش فرض عدد اعشاری به صورت ۶۴ بیتی در حافظه ذخیره می شود.
نکته: در حالت اعشاری, اعداد به صورت تقریبی ذخیره میشوند و به دلیل تقریبی بودن, برای محاسبات مهم که نیازمند دقت بالا هستند مناسب نیستند و ممکن است منجر به نتایج غیر قابل پیش بینی شوند.
در مثال بالا انتظار داریم که نتیجه حاصل از جمع کردن دو مقدار a و b برابر با c شود, اما این اتفاق نمی افتد.
اعداد مختلط
در گولنگ از اعداد مختلط (Complex Numbers) نیز پشتیبانی میشود. اعداد مختلط در دو حالت ۶۴ و ۱۲۸ بیتی وجود دارند.
- complex64: اعداد مختلط با قسمت حقیقی و موهومی از نوع float32
- complex128: اعداد مختلط با قسمت حقیقی و موهومی از نوع float64
برای تعریف اعداد مختلط میتوان از تابع complex
استفاده کرد یا اینکه قسمت موهومی را با علامت +
و پسوند i
از قسمت حقیقی جدا کرد.
در صورتی که اندازه حافظه را مشخص نکنیم (مانند مثال بالا) به صورت پیش فرض complex128
مورد استفاده قرار میگیرد.
برای دسترسی به بخش حقیقی و موهومی نیز به ترتیب از تابع (فانکشن) real
و imag
استفاده میکنیم:
عملگرهای ریاضی
برای آشنایی با عملگرهای ریاضی , به مثال زیر دقت کنید:
جمع بندی
توی این قسمت با دیتا تایپ های عددی در گولنگ آشنا شدیم و عملگرهای ریاضی رو بررسی کردیم.
قسمت قبل: ثابت ها (constants) | گولنگ به زبان ساده
قسمت بعد: بولین (bool) | گولنگ به زبان ساده