کامپیوترها میتوانند متن، تصویر، صدا، ویدئو و برنامههای مختلف را پردازش کنند، اما در پایینترین سطح همه اطلاعات را با دو مقدار ساده نگهداری میکنند: صفر و یک.
به این روش نمایش اطلاعات، سیستم باینری یا دودویی گفته میشود. اعداد باینری پایه عملکرد کامپیوتر، تلفن همراه، حافظه، پردازنده و بیشتر دستگاههای دیجیتال هستند.
سیستم باینری چگونه کار میکند؟
در زندگی روزمره از سیستم دهدهی استفاده میکنیم. این سیستم شامل رقمهای صفر تا ۹ است. اما سیستم باینری فقط دو رقم دارد:
- صفر
- یک
ارزش هر رقم در سیستم باینری بر اساس توانهای عدد ۲ محاسبه میشود.
برای مثال، عدد باینری زیر را در نظر بگیرید:
1010
ارزش جایگاههای آن از سمت راست برابر با ۱، ۲، ۴ و ۸ است. بنابراین:
1010 = 8 + 2 = 10
پس عدد باینری 1010 برابر با عدد ۱۰ در سیستم دهدهی است.
بیت و بایت چیست؟
هر صفر یا یک در سیستم باینری یک بیت نام دارد.
هر هشت بیت نیز معمولاً یک بایت را تشکیل میدهند:
1 Byte = 8 Bits
برای مثال عبارت زیر از هشت بیت ساخته شده است:
01000001
حجم فایلها و حافظه کامپیوتر نیز با واحدهایی مانند کیلوبایت، مگابایت، گیگابایت و ترابایت اندازهگیری میشود.
چرا کامپیوتر از صفر و یک استفاده میکند؟
قطعات کامپیوتر از مدارهای الکترونیکی و تعداد بسیار زیادی ترانزیستور ساخته شدهاند. ترانزیستورها مانند کلیدهای بسیار کوچک عمل میکنند و میتوانند در دو حالت روشن یا خاموش باشند.
این دو حالت با صفر و یک نمایش داده میشوند. معمولاً ولتاژ پایین بهعنوان صفر و ولتاژ بالا بهعنوان یک در نظر گرفته میشود.
استفاده از دو حالت باعث میشود مدارهای دیجیتال سادهتر، سریعتر و قابلاعتمادتر باشند.
اطلاعات باینری کجا ذخیره میشوند؟
دادههای باینری در بخشهای مختلف کامپیوتر ذخیره و پردازش میشوند.
حافظه RAM
حافظه RAM اطلاعات برنامههای در حال اجرا را بهصورت موقت نگهداری میکند.
وقتی مرورگر، بازی یا نرمافزاری را اجرا میکنید، بخشی از اطلاعات آن وارد RAM میشود تا پردازنده سریعتر به آن دسترسی داشته باشد.
اطلاعات RAM پس از خاموش شدن دستگاه از بین میروند.
حافظه SSD
در حافظه SSD اطلاعات در سلولهای حافظه فلش ذخیره میشوند. این سلولها با استفاده از بار الکتریکی، حالتهای مختلفی را نمایش میدهند.
برخلاف RAM، اطلاعات SSD پس از خاموش شدن دستگاه باقی میمانند. سیستمعامل، برنامهها، تصاویر و فایلهای شخصی معمولاً روی SSD ذخیره میشوند.
هارددیسک
در هارددیسک اطلاعات به شکل وضعیتهای مغناطیسی روی سطح دیسک ذخیره میشوند.
هر بخش از سطح دیسک میتواند حالتی را نمایش دهد که بهصورت صفر یا یک تفسیر میشود.
پردازنده
پردازنده یا CPU وظیفه اجرای دستورها را بر عهده دارد.
در داخل پردازنده نیز حافظههای سریعی مانند کش و ثباتها وجود دارند که اطلاعات مورد نیاز را برای مدت کوتاهی نگهداری میکنند.
متن چگونه به باینری تبدیل میشود؟
کامپیوتر حروف را مانند انسان درک نمیکند. برای هر حرف یک کد عددی مشخص وجود دارد.
برای مثال، در استاندارد ASCII حرف بزرگ A دارای مقدار ۶۵ است. عدد ۶۵ در سیستم باینری به شکل زیر نوشته میشود:
01000001
برای نمایش زبان فارسی و سایر زبانها معمولاً از استاندارد Unicode و رمزگذاری UTF-8 استفاده میشود.
در نتیجه هر حرف ابتدا به یک عدد و سپس به صفر و یک تبدیل میشود.
تصویر و صدا چگونه ذخیره میشوند؟
تصاویر دیجیتال از نقطههای کوچکی به نام پیکسل ساخته شدهاند. هر پیکسل اطلاعاتی درباره رنگ و روشنایی دارد.
در سیستم RGB رنگ هر پیکسل از ترکیب سه مقدار قرمز، سبز و آبی ساخته میشود. این مقادیر عددی در نهایت به شکل باینری ذخیره میشوند.
صدا نیز با نمونهبرداری از موج صوتی به عدد تبدیل میشود. این عددها بهصورت صفر و یک در فایلهایی مانند MP3 یا WAV ذخیره میشوند.
ویدئو نیز از مجموعهای از تصاویر، صدا و اطلاعات دیگر تشکیل شده است که همه آنها در نهایت به دادههای باینری تبدیل میشوند.
برنامهها چگونه اجرا میشوند؟
برنامهنویسان معمولاً برنامههای خود را با زبانهایی مانند C، C++، Python، Java یا C# مینویسند.
برای مثال:
int result = 5 + 3;
این کد برای انسان قابلفهم است، اما پردازنده نمیتواند آن را مستقیماً اجرا کند.
برای اجرای برنامه، کد باید به دستورهای قابلفهم برای پردازنده تبدیل شود.
مراحل کلی اجرای برنامه به این صورت است:
- برنامهنویس کد را مینویسد.
- کامپایلر یا مفسر کد را بررسی میکند.
- کد به دستورهای سطح پایینتر تبدیل میشود.
- سیستمعامل برنامه را وارد حافظه میکند.
- پردازنده دستورها را اجرا میکند.
پردازنده برای اجرای هر دستور معمولاً سه مرحله را انجام میدهد:
- دریافت دستور
- تشخیص دستور
- اجرای دستور
این فرایند با نام چرخه دریافت، رمزگشایی و اجرا شناخته میشود.
کامپایلر چیست؟
کامپایلر برنامهای است که کد نوشتهشده با یک زبان سطح بالا را به کدی نزدیکتر به زبان پردازنده تبدیل میکند.
کامپایلر میتواند خطاهای کد را پیدا کند، برنامه را بهینه کند و فایل اجرایی بسازد.
در بعضی زبانها، کامپایلر ابتدا کد اسمبلی تولید میکند. سپس برنامهای به نام اسمبلر، کد اسمبلی را به کد ماشین تبدیل میکند.
مسیر کلی تبدیل کد به این شکل است:
کد برنامهنویسی ← کامپایلر ← اسمبلی ← کد ماشین
زبان ماشین چیست؟
زبان ماشین مجموعه دستورهایی است که پردازنده میتواند مستقیماً اجرا کند.
زبان ماشین خود از الگوهای باینری تشکیل شده است. بنابراین زبان ماشین دوباره به باینری ترجمه نمیشود، بلکه خودش همان دستورهای باینری پردازنده است.
هر دستور ماشین میتواند کاری مانند جمع کردن دو عدد، انتقال داده، مقایسه دو مقدار یا رفتن به بخش دیگری از برنامه را انجام دهد.
هر نوع پردازنده نیز مجموعه دستورهای مخصوص خود را دارد. به همین دلیل کد ماشین پردازندههای ARM و x86 یکسان نیست.
تفاوت زبان اسمبلی و زبان ماشین
زبان ماشین از صفر و یک یا مجموعهای از بایتها ساخته شده و مستقیماً توسط پردازنده اجرا میشود.
اما زبان اسمبلی از کلمات کوتاهتری استفاده میکند که برای انسان قابلفهمتر هستند، مانند:
MOV
ADD
SUB
JMP
برنامهای به نام اسمبلر این دستورها را به کد ماشین تبدیل میکند.
پایتون چگونه اجرا میشود؟
پایتون معمولاً مانند زبان C مستقیماً به یک فایل ماشین مستقل تبدیل نمیشود.
در اجرای معمول پایتون، کد ابتدا به بایتکد تبدیل میشود و سپس مفسر یا ماشین مجازی پایتون آن را اجرا میکند.
با این حال، پردازنده در نهایت فقط دستورهای ماشین را اجرا میکند. بنابراین برنامههای پایتون نیز در پایینترین سطح توسط دستورهای باینری پردازش میشوند.
فواید یادگیری اعداد باینری
یادگیری سیستم باینری به درک بهتر عملکرد کامپیوتر کمک میکند.
مهمترین فواید آن عبارتاند از:
- درک بهتر بیت، بایت و حافظه
- شناخت نحوه ذخیره متن، تصویر و صدا
- آشنایی با عملکرد پردازنده
- درک بهتر زبان ماشین و اسمبلی
- یادگیری سادهتر شبکه و آدرس IP
- شناخت بهتر کامپایلر و اجرای برنامهها
- آمادگی برای یادگیری سختافزار و امنیت
- استفاده بهتر از عملگرهای بیتی در برنامهنویسی
دانستن باینری برای شروع برنامهنویسی اجباری نیست، اما باعث میشود مفاهیم کامپیوتری را عمیقتر و دقیقتر یاد بگیرید.
جمعبندی
اعداد باینری پایه اصلی عملکرد کامپیوترها هستند. تمام اطلاعات، از متن و تصویر گرفته تا صدا، ویدئو و برنامهها، در نهایت به صفر و یک تبدیل میشوند.
هر صفر یا یک یک بیت نام دارد و هر هشت بیت معمولاً یک بایت را تشکیل میدهند.
دادههای باینری در RAM، SSD، هارددیسک و پردازنده به شکل وضعیتهای الکتریکی یا مغناطیسی ذخیره و پردازش میشوند.
برنامهنویس کد را با یک زبان قابلفهم مینویسد و کامپایلر یا مفسر آن را به دستورهای سطح پایینتر تبدیل میکند. در نهایت پردازنده کد ماشین را اجرا میکند.
یادگیری سیستم باینری کمک میکند ارتباط میان نرمافزار، حافظه و سختافزار را بهتر درک کنیم.


نظرات کاربران
ثبت نظر
نظرها فقط با نام رسمی کاربر احراز هویتشده ثبت میشوند.