یک مفهوم خیلی جالب داخل دنیای کامپیوتر بحث انکودینگ (Encoding) یا همون کدگذاری هست.

یکی از اصطلاحات مرتبطی که احتمالا تا به امروز به گوشتون خورده و براتون سوال شده که دقیقا چیه ASCII هستش که امروز بالاخره میتونین به جواب سوالتون برسین و این مقاله، بهترین مقاله ای هست که میتونستین انتخاب کنین.

تمام اطلاعات ما در دنیای کامپیوتر به صورت باینری یا همون صفر و یک ذخیره میشن که این مسئله یه خورده میتونه ما رو محدود کنه توی تنوع داده هایی که ذخیره می کنیم. خبر خوب اینکه حجم زیادی از اطلاعات روزمّره ما، خودشون عدد هستن و نیازی نیست که کار اضافه ای انجام بدیم، چون که اعداد رو میتونیم با روش هایی نسبتا ساده تبدیل کنیم به باینری و بعدش اونها رو داخل حافظه های مختلف از جمله رم (RAM) یا هارد (Hard Disk)ذخیره کنیم. ولی نوع داده رشته (string) یا دقیق تر بگم، کاراکترها رو نمیتونیم به صورت عددی ذخیره کنیم. از طرفی بنظر میرسه که این نوع داده خیلی اهمیت بالایی داره برای ما و نمیتونیم که به همین سادگی از کنارش رد بشیم. (مگه اینکه تصمیم بگیریم از این به بعد به صورت کدهای مورس ارتباط برقرار کنیم!)

این رو هم بگم که تمام مواردی که لازم باشه، از جمله تبدیل مبنای اعداد، انواع حافظه، و کلی مبحث دیگه ای که شاید برای عموم مردمی که این مقاله رو میخونن جدید باشه رو همه و همه، صفر تا صد به صورت کامل داخل سایت در قالب مقاله هایی جدید براتون میزارم.

ایده ای که مطرح شد تا این مشکل رفع بشه این بود که به صورت قراردادی به هر کاراکتر یک عددی رو نسبت بدیم و اون عدد رو به نمایندگی از کاراکترمون داخل حافظه ذخیره کنیم. دلیل اصلی اینکه ما باید اطلاعات رو به صورت باینری ذخیره کنیم، انتقال اون هاست؛ اگه ما قصد داشته باشیم که متن های خودمون رو بین سیستم های مختلف از طرق مختلف انتقال بدیم به طوریکه توی باقی سیستم ها هم یک مفهوم ثابت داشته باشه و قابل درک باشه باید تبدیل بشه به صفر و یک های مرموز کامپیوتری! و دقیقا برعکس این عملیات هم وجود داره که بهش میگیم دیکودینگ (Decoding). مکانیسم کار به این شکله که میاد و با استفاده از اون اعداد قراردادی که تعریف کردیم، صفر و یک ها رو تبدیل میکنه به کاراکترهای با معنی که قراره توسط انسان ها خونده بشن.

تا به اینجای کار شما با مفهوم کدگذاری و کدگشایی آشنا شدین و میتونین از همدیگه تفکیکشون کنین. ولی یه نکته خیلی مهمی هست که قبل از ادامه بحث لازم میدونم اول اون رو توضیح بدم. دو تا واژه مهم داریم. مقدار و مفهوم. این دوتا واژه شاید در نگاه اول خیلی شبیه به هم باشن ولی ما اول باید بتونیم بین این دو واژه تمایز قائل بشیم. برای مثال فرض کنین که در یک خونه ای از حافظه رم، در یک بایتی تک و تنها و دور از هیاهوی سیستم عامل، عدد 255 ذخیره شده. خب این عدد میتونه معانی مختلفی داشته باشه برای برنامه نویسی که ازش استفاده میکنه؛ مثلا میتونه بیانگر تعداد دانش آموزهای یک مدرسه باشه، میتونه سرعت یک خودرو رو بیان کنه، میتونه یک پیکسل سفید از یک عکس باشه، طول یک دفتر برحسب میلی متر باشه، و …

در همه حالات بالا، مقداری که داشتیم یک مقدار ثابت بود، ولی هر کدوم مفاهیم متفاوتی رو به همراه خودشون داشتن. و نکته ای که خیلی مهمه اینه که باید بدونیم سیستم انکودینگ فقط مختص به متن ها نیست! ما در خیلی جاها ازش استفاده میکنیم که در آینده بیشتر دربارش صحبت میکنیم.

بسیارخب! امیدوارم که مقاله این جلسه براتون مفید بوده باشه. در مقالات آتی مفاهیم بیشتری از علوم کامپیوتر و برنامه نویسی یاد خواهیم گرفت.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با قوانین موافقت کنید

keyboard_arrow_up