cpp-02-07 - معرفی مبنای 16 و نوع float

بازدید : 34

0

اشتراک

cpp-02-07 - معرفی مبنای 16 و نوع float

توضیحات :

در این بخش از آموزش C++، یک نگاه کاربردی به مبنای ۱۶ (Hexadecimal)، نحوه نمایش اعداد در حافظه (RAM) و تفاوت داده‌های float و double خواهیم داشت؛ بدون ورود به مباحث سنگین معماری کامپیوتر.


🔹 مبنای ۱۶ (Hexadecimal) چیست؟

در مبنای ۱۶، اعداد از ۰ تا ۱۵ به صورت زیر نمایش داده می‌شوند:

0 1 2 3 4 5 6 7 8 9 A B C D E F
  • A = 10

  • B = 11

  • C = 12

  • D = 13

  • E = 14

  • F = 15

این سیستم عددی برای نمایش مقادیر داخل حافظه، آدرس‌ها و داده‌های دودویی کاربرد فراوانی دارد.


🔹 مثال: چرا عدد 45 در حافظه به شکل Hex دیده می‌شود؟

وقتی عددی مثل 45 در حافظه ذخیره می‌شود، مقدار آن به صورت هگز نمایش داده می‌شود.
در این نمایش:

  • رقم اول ارزش 16^0 دارد

  • رقم دوم ارزش 16^1 دارد

اگر یک مقدار مثل D3 داشته باشیم:

D = 13 → 13 × 16^0 = 13 3 = 3 → 3 × 16^1 = 48 جمع این دو = 61

به همین منطق، مقدار 45 نیز از ترکیب حروف/اعداد هگز به دست می‌آید.

این روش نمایش دادن، مبنای کار پردازنده و حافظه است.


🔹 مقدمه‌ای کوتاه درباره نمایش اعشار در حافظه (Floating Point)

نوع داده float برای ذخیره اعداد اعشاری به‌کار می‌رود:

float a = 2.5;

نکات مهم:

  • float و int هر دو ۴ بایت فضا می‌گیرند

  • اما نمایش float در حافظه با روش Floating Point انجام می‌شود

  • یعنی بخشی از بیت‌ها برای علامت، بخشی برای قسمت صحیح و بخشی برای قسمت اعشار استفاده می‌شود

  • این ساختار جزئیات معماری سخت‌افزاره و در سطح مقدماتی نیاز نیست کامل وارد آن شوید


🔥 نکته مهم: پیش‌فرض کامپایلر — double

در C++ هر عدد اعشاری (مثل 2.5) به صورت پیش‌فرض double در نظر گرفته می‌شود.

پس اگر بنویسید:

float a = 2.5;

کامپایلر عدد 2.5 را double محسوب می‌کند و آن را به float type cast می‌کند.

برای جلوگیری از این مسئله و مشخص کردن اینکه عدد اعشار مخصوص float است، باید از f استفاده کنید:

float a = 2.5f;

این کار:

  • از تبدیل غیرضروری جلوگیری می‌کند

  • دقت نمایش float را درست نگه می‌دارد

  • با استانداردهای جدید C++ سازگارتر است


🔹 نمونه کد کامل

#include <iostream> using namespace std; int main() { float a = 2.5f; cout << a; return 0; }

خروجی:

2.5

🔚 جمع‌بندی

در این بخش یاد گرفتیم:

✔ مبنای ۱۶ چگونه کار می‌کند

✔ چرا حافظه مقادیر را با Hex نشان می‌دهد

✔ float چگونه در RAM ذخیره می‌شود

✔ چرا باید به اعداد اعشاری حرف f اضافه کنیم

✔ تفاوت float و double از نگاه کامپایلر

این مفاهیم پایه‌ای هستند، اما در ادامه مسیر یادگیری C++ (خصوصاً اشاره‌گرها و حافظه)، کاملاً برایتان کاربردی و ضروری خواهند شد.

لطفا برای گذاشتن نظرات خود وارد شوید

نظرات شما عزیزان