عملگرها (C Operators)
عملگرها در C: موتورِ محرکِ محاسبات ⚙️⚡
عملگرها (Operators) نمادهایی هستند که رویِ مقادیر یا متغیرها عملیات انجام میدهند. C مجموعهیِ کاملی از عملگرهایِ ریاضی و منطقی را در اختیارِ شما میگذارد.
۱. عملگرهایِ محاسباتی (Arithmetic)
+,-,*,/: اعمالِ پایه.%: باقیماندهیِ تقسیم (Modulo). فقط رویِ اعدادِ صحیح کار میکند.++,--: افزایش یا کاهشِ یک واحدی.
۲. عملگرهایِ انتسابی (Assignment)
برایِ ریختنِ مقدار در متغیر: =. همچنین میانبرهایی مثل +=, -= و... وجود دارند.
۳. عملگرهایِ بیتی (Bitwise) - مخصوصِ حرفهایها!
اینجاست که قدرتِ C مشخص میشود. شما میتوانید مستقیماً رویِ بیتها کار کنید:
&(AND),|(OR),^(XOR),~(NOT)<<(Shift Left),>>(Shift Right)
() استفاده کنید.
مثالِ باقیمانده:
{code_block('int r = 10 % 3; // r برابر است با 1')}<<) یکی از سریعترین راهها برایِ ضربِ یک عدد در ۲ است!
بخش تخصصی: مهندسیِ متغیرها و مدیریتِ حافظه 🧱⚙️⚡
در زبانِ C، متغیرها فقط نامهایی برایِ سادهسازی نیستند؛ آنها نمایندهیِ آدرسهایی در حافظهیِ فیزیکی (RAM) هستند. درکِ نحوهیِ ذخیرهسازیِ دادهها، مرز بینِ یک کدنویسِ معمولی و یک توسعهدهنده سیستم است.
۱. ترتیبِ بایتها (Endianness)
وقتی یک عددِ ۴ بایتی (مثل int) در حافظه ذخیره میشود، بایتها به چه ترتیبی قرار میگیرند؟
- Little-Endian: بایتِ کمارزش در آدرسِ کمتر ذخیره میشود (رایج در پردازندههای x86 و ARM).
- Big-Endian: بایتِ پُرارزش در آدرسِ کمتر ذخیره میشود (رایج در شبکهها و برخی پردازندههای قدیمی).
۲. نمایشِ اعدادِ اعشاری (IEEE 754)
اعدادِ اعشاری در C (مثل float و double) بر اساسِ استانداردِ IEEE 754 ذخیره میشوند. این استاندارد عدد را به سه بخش تقسیم میکند:
- Sign (علامت): ۱ بیت برای مثبت یا منفی بودن.
- Exponent (توان): برای مشخص کردنِ بزرگیِ عدد.
- Mantissa (مانتیس): برای مشخص کردنِ دقتِ عدد.
۳. کلاسهایِ ذخیرهسازی (Storage Classes)
هر متغیر در C علاوه بر "نوع"، یک "کلاسِ ذخیرهسازی" هم دارد که طولِ عمر و حوزهیِ دسترسیِ آن را مشخص میکند:
auto: پیشفرض برای متغیرهای محلی.statice: مقدارِ خود را بینِ فراخوانیهایِ تابع حفظ میکند.extern: برای دسترسی به متغیری که در فایلِ دیگری تعریف شده است.register: به کامپایلر پیشنهاد میدهد متغیر را در ثباتهایِ CPU نگه دارد (برایِ سرعتِ فوقالعاده).
sizeof() برای پیدا کردنِ اندازهیِ واقعیِ یک متغیر در سیستمِ خود استفاده کنید. اندازهیِ int در یک سیستمِ ۱۶ بیتی با یک سیستمِ ۶۴ بیتی میتواند متفاوت باشد!
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
باقیماندهی تقسیم عدد 17 بر 5 را حساب کرده و چاپ کنید.
#include <stdio.h>
int main() {
printf("%d", 17 % 5);
return 0;
}
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.