09982292579
info@mehraeen.ac.ir
فارسی پرچم
فارسی
یک زبان را انتخاب کنید
فارسی پرچم
فارسی
0
دسته ها
خانه تقویم‌آموزشی مدرس وبلاگ چارت‌‌دروس تماس‌با‌ما درباره‌ما انجمن‌ها
زبان تخصصی کامپیوتر

جلسه 11 Prefixes

خلاصه نکات کلیدی پیشوندها در کامپیوتر برای مقیاس دادن به مقادیر و نیز معنی‌دهی به نام‌ها به کار می‌روند. پیشوندهای SI بر مبنای توان‌های 10 هستند: (k=10^3)، (M=10^6)، (G=10^9)، (T=10^{12}) پیشوندهای دودویی (IEC) بر مبنای توان‌های 2 هستند: (Ki=2^{10})، (Mi=2^{20})، (Gi=2^{30}) در ذخیره‌سازی، ممکن است اختلاف بین MB/GB و MiB/GiB باعث تفاوت در نمایش ظرفیت‌ها شود. در شبکه، prefix در CIDR با فرمی مثل /24 نشان می‌دهد چه تعداد بیت برای بخش شبکه استفاده می‌شود. در نام‌گذاری توابع و مفاهیم، پیشوندهایی مثل pre-، sub-، post- معمولاً ترتیب زمانی یا نوع ساختار/زیرمسئله را مشخص می‌کنند. در سیستم فایل، پیشوندهای مسیر مثل ./ و ../ مشخص می‌کنند مسیر نسبی است یا با یک سطح بالا حرکت می‌کند.

 تیتر: پیشوندها

پیشوند (Prefix) در زبان علمی و فنی به بخشی از کلمه یا نشانه گفته می‌شود که در ابتدای عبارت قرار می‌گیرد و معنا یا مقیاس آن را تغییر می‌دهد.

در کامپیوتر، پیشوندها معمولاً در دو دسته رایج ظاهر می‌شوند:

  1. پیشوندهای SI (برای مقیاس واحدها، مثل k, M, G برای ۱۰ یا توان‌های آن)

  2. پیشوندهای دودویی/نمایشی (برای مقیاس‌هایی که در دنیای حافظه و ذخیره‌سازی استفاده می‌شوند، مثل KiB، MiB و GiB)

  3. پیشوندهای معنایی در نام‌گذاری مفاهیم (مثل pre- در مفاهیم پردازش/الگوریتم‌ها یا sub- در نام‌گذاری توابع و ماژول‌ها)

  4. پیشوندها در شبکه و پروتکل‌ها/کالبد داده‌ها (مثل IP, MAC, HTTP که بخشی از نام‌گذاری هستند و معمولاً به معنای خانواده یا نقش دارند)

نکته: در این سند بیشتر روی کاربرد پیشوندها در مقیاس‌ها و نام‌گذاری‌های رایج در کامپیوتر تمرکز می‌کنیم.


2) مثال: مثال‌های کاربردی از پیشوندها در مباحث مختلف کامپیوتر

2.1) پیشوندهای SI در کامپیوتر (k, M, G, T)

در بسیاری از محیط‌های فنی، پیشوندهای SI برای نمایش مقادیر استفاده می‌شوند:

پیشوندنمادمقدار (ده‌دهی)کیلوk(10^3)مگاM(10^6)گیگاG(10^9)تتراT(10^{12})پتاP(10^{15})

مثال 1: سرعت لینک شبکه

اگر سرعت یک لینک را 1.25 Gbps ببینید، یعنی:
[ 1.25 \times 10^9 \text{ بیت بر ثانیه} ]

مثال 2: فرکانس پردازنده

اگر فرکانس 3.2 GHz باشد:
[ 3.2 \times 10^9 \text{ هرتز} ]


2.2) پیشوندهای دودویی در حافظه (KiB, MiB, GiB)

در دنیای حافظه، به‌ویژه در سیستم‌عامل‌ها و ابزارهای فنی، تفاوت مهمی وجود دارد:

  • SI: بر مبنای توان‌های 10

  • دودویی: بر مبنای توان‌های 2

پیشوندهای استاندارد دودویی (IEC) معمولاً این‌ها هستند:

پیشوند دودویینمادمقدارکیبیKi(2^{10})میبیMi(2^{20})گیبیGi(2^{30})تببیTi(2^{40})پبیPi(2^{50})

مثال 3: اندازه فایل در هارد/SSD

اگر بگویند فایل شما 512 MiB است، یعنی:
[ 512 \times 2^{20} \text{ بایت} ]

مثال 4: چرا confusion پیش می‌آید؟

ممکن است در برخی ابزارها به جای MiB از MB استفاده شود، درحالی‌که کاربران انتظار (10^6) دارند. برای کاهش خطا:

  • اگر MiB دیدید، دودویی است.

  • اگر MB دیدید، معمولاً ده‌دهی (SI) است (اما بسته به منبع ممکن است مبهم باشد).

توصیه آموزشی: همیشه نماد دقیق (B، iB) را چک کنید.


2.3) پیشوندهای مربوط به واحدها در داده و ذخیره‌سازی

پیشوندها در کنار واحدها ظاهر می‌شوند. چند نمونه:

  • KB / MB / GB (معمولاً SI)

  • KiB / MiB / GiB (دودویی)

مثال 5: محاسبه حجم

فرض کنید یک حافظه 8 GiB باشد. مقدار آن:
[ 8 \times 2^{30} \text{ بایت} ] و اگر بخواهید به GiB در ذهن تبدیل کنید، همان عدد 8 باقی می‌ماند؛ اما در بایت باید ضرب انجام دهید.


2.4) پیشوندها در شبکه (Network Prefix)

در شبکه، prefix یکی از کلیدواژه‌های اصلی است و معمولاً منظور بخشی از آدرس یا ماسک شبکه است.

مثال 6: CIDR

در یادگیری آدرس‌دهی IP، معمولاً چیزی مثل زیر می‌بینید:

  • 192.168.1.0/24

اینجا:

  • /24 یعنی طول پیشوند (prefix length) = 24 بیت از آدرس که برای شبکه به کار می‌رود.

اگر IPv4 باشد، طول کل آدرس (32) بیت است و:

  • تعداد بیت‌های میزبان = (32 - 24 = 8)

پس تعداد آدرس‌های قابل استفاده در این شبکه:
[ 2^{8} = 256 ]


2.5) پیشوندهای معنایی در نام‌گذاری الگوریتم‌ها و توابع

در نام‌گذاری فنی، پیشوندها گاهی معنای منطقی/ساختاری می‌دهند:

  • pre-: پیش از انجام (مانند preprocessing در تحلیل داده)

  • sub-: زیربخش/زیرمسئله (مانند subroutine، subarray)

  • post-: پس از انجام (مانند postorder در درخت‌ها)

  • min- / max-: کمینه/بیشینه

  • re-: تکرار یا بازگشت (مثل recompute)

مثال 7: Preprocessing در داده‌ها

در بسیاری از مسائل، پیش از اجرای الگوریتم اصلی، داده‌ها استانداردسازی می‌شوند:

  • preprocess(data) یعنی داده‌ها برای مرحله بعد آماده می‌شوند.

مثال 8: Traversal با پیشوندهای post/pre

در درخت:

  • preorder: ابتدا ریشه، سپس فرزندان

  • postorder: فرزندان، سپس ریشه


2.6) پیشوندها در سیستم‌های فایل و مسیرها

در مسیرهای فایل، برخی پیشوندها معنای ویژه دارند:

  • مسیر مطلق: معمولاً با / شروع می‌شود (در سیستم‌های یونیکس)

  • مسیر نسبی: بدون / یا با ./ و ../

مثال 9: معنی و

  • ./file.txt یعنی فایل را در همان پوشه فعلی پیدا کن.

  • ../data.csv یعنی یک سطح بالاتر برو و سپس در پوشه بعدی جستجو کن.


3) تمرین پایان فصل (تمرین‌هایی برای درک بهتر مطالب)

تمرین 1: تبدیل واحد با SI

  1. (3.5\text{ k}\Omega) را به اهم درآورید.

  2. (2.2\text{ GHz}) را به هرتز تبدیل کنید.

راهنما:

  • k یعنی (10^3)

  • G یعنی (10^9)


تمرین 2: تبدیل واحد دودویی

  1. مقدار (768\text{ MiB}) را به بایت تبدیل کنید.

  2. مقدار (4\text{ GiB}) را به MiB تبدیل کنید.

راهنما:

  • (1\text{ MiB} = 2^{20})

  • (1\text{ GiB} = 2^{30}) و بنابراین: [ 1\text{ GiB} = 1024\text{ MiB} ]


تمرین 3: ابهام MB vs MiB

یک حافظه 1TB خریداری می‌کنید. در سیستم‌عامل شما به صورت 931 GiB نمایش داده می‌شود.

  1. دلیل اختلاف را توضیح دهید (ده‌دهی vs دودویی).

  2. اگر سیستم‌عامل به جای GiB از TB ده‌دهی استفاده می‌کرد، چه عددی احتمالاً نمایش داده می‌شد؟

نکته: در بسیاری از فروشگاه‌ها از نمادهای SI استفاده می‌شود، اما در سیستم‌عامل‌ها معمولاً نمایش دودویی رایج است.


تمرین 4: شبکه با CIDR

برای آدرس 10.0.0.0/16:

  1. تعداد بیت‌های میزبان چند است؟

  2. تعداد کل آدرس‌های ممکن در این شبکه چند است؟

  3. اگر فرض کنیم شبکه شامل آدرس شبکه و broadcast است، تعداد آدرس‌های قابل استفاده برای hostها را حساب کنید.


تمرین 5: تحلیل نام‌گذاری در کد

فرض کنید در یک پروژه با این نام‌ها برخورد می‌کنید:

  • preprocess()

  • submodule

  • postorderTraverse()

  • minHeapify()

برای هر مورد:

  1. احتمالاً منظور از پیشوند در آن تابع/ماژول چیست؟

  2. یک مثال ساده از کاری که آن تابع انجام می‌دهد بنویسید.


تمرین 6: تبدیل آدرس مسیرها

در یک سیستم یونیکس با پوشه فعلی:
/home/student/projects/lab1

پاسخ دهید:

  1. مسیر ./input.txt به کدام فایل اشاره می‌کند؟

  2. مسیر ../data/train.csv دقیقاً کدام مسیر مطلق است؟


4) خلاصه نکات کلیدی

  • پیشوندها در کامپیوتر برای مقیاس دادن به مقادیر و نیز معنی‌دهی به نام‌ها به کار می‌روند.

  • پیشوندهای SI بر مبنای توان‌های 10 هستند:
    (k=10^3)، (M=10^6)، (G=10^9)، (T=10^{12})

  • پیشوندهای دودویی (IEC) بر مبنای توان‌های 2 هستند:
    (Ki=2^{10})، (Mi=2^{20})، (Gi=2^{30})

  • در ذخیره‌سازی، ممکن است اختلاف بین MB/GB و MiB/GiB باعث تفاوت در نمایش ظرفیت‌ها شود.

  • در شبکه، prefix در CIDR با فرمی مثل /24 نشان می‌دهد چه تعداد بیت برای بخش شبکه استفاده می‌شود.

  • در نام‌گذاری توابع و مفاهیم، پیشوندهایی مثل pre-، sub-، post- معمولاً ترتیب زمانی یا نوع ساختار/زیرمسئله را مشخص می‌کنند.

  • در سیستم فایل، پیشوندهای مسیر مثل ./ و ../ مشخص می‌کنند مسیر نسبی است یا با یک سطح بالا حرکت می‌کند.

درس متنی 11/33
در حال مشاهده
جلسه 11 Prefixes