کامپیوترها چگونه صحبت می‌کنند؟ آشنایی با زبان باینری (۰ و ۱)

زمان مطالعه: حدود 9 دقیقه / 4 گفتگو

جالب است بدانید که تمام ارتباطات و فعالیت‌های کامپیوتر مانند ذخیره سازی داده‌ها و حتی محاسبات بر اساس اعداد ۰ و ۱ یا همان زبان باینری انجام می‌شود. سیستم باینری (یا دودویی) یک سیستم عددی است که فقط از دو رقم استفاده می کند که همانطور که گفته شد این اعداد ۰ و ۱ هستند. یک رقم باینری تنها می تواند Trueیا  1 و False یا ۰ را در منطق بولی نشان دهد. اما از این دو عدد باینری می‌توان برای نشان دادن تعداد زیادی اطلاعات و انجام توابع پیچیده استفاده کرد.

سیستم باینری در کامپیوترها

برای درک بهتر از این سیستم عددی و نحوه عملکرد کامپیوترها بهتر است این سیستم عددی را بهتر بشناسیم. همانطور که می‌دانید کوچکترین واحد ذخیره سازی در رایانه‌ها بیت است. هر یک بیت یک مقدار باینری دارد یعنی می‌تواند یا یک و یا صفر را در خود جای دهد. واحد بزرگتر از بیت بایت است، یک بایت شامل هشت بیت است، به این معنی که می تواند ۲۵۶ (۲ به توان ۸) مقادیر مختلف داشته باشد. اما چرا ۲۵۶ حالت؟ بر اساس نوع این اعداد ما در هر بیت ۲ حالت بیشتر نداریم، در یک بیت یا عدد ۱ وجود دارد و یا ۰، پس می‌توانیم بگوییم ۱ بیت می‌تواند ۲ به توان ۱ حالت داشته باشد که می‌شود ۲ حالت اصلی ۰ و ۱. اگر تعداد بیت‌ها افزایش پیدا کند تعداد حالت‌ها نیز به همان میزان افزایش پیدا خواهد کرد، به همین جهت برای نشان دادن حالت‌ها از توان استفاده می‌کنیم تا محاسبه و به خاطر سپاری برایمان راحت‌تر شود. بنابراین ۸ بیت، ۲ به توان ۸ حالت مختلف دارد یعنی ۲۵۶ حالت قرارگیری اعداد ۰ و ۱.

منظور از نحوه قرارگیری ترتیب و حالت پر کردن تعداد بیت‌هاست. به عنوان مثال در ۲ بیت حافظه ۲ به توان ۲ حالت قرارگیری اعداد وجود دارد، یک چیدمان ساده! یا هر دو بیت ۰ هستند (۰۰)، یا هر دو ۱ هستند (۱۱)، یا ۰ در ابتدا قرار می‌گیرد (۰۱) و یا ۱ (۱۰). این روش قرارگیری اعداد و نمایش آن‌ها در بیت است. برای درک بیشتر موضوع تصویر زیر را مشاهده کنید.

سیستم عددی باینری

این مقادیر ممکن است برای نشان دادن کاراکترهای مختلف در یک سند متنی، مقادیر RGB یک پیکسل در یک تصویر یا انواع دیگر داده‌ها استفاده شود. در فایل‌های بزرگ ممکن است این مقادیر حاوی چندین هزار بایت (یا چندین مگابایت) داده باینری باشند. یک برنامه بزرگ ممکن است هزاران مگابایت داده را در بر بگیرد. مهم نیست که یک فایل یا برنامه چقدر بزرگ باشد، در ابتدایی‌ترین سطح این داده‌های بزرگ، صرفاً مجموعه‌ای از رقم‌های باینری است که توسط پردازنده کامپیوتر قابل خواندن است. اما چطور این اعداد تبدیل به اطلاعات داخل کامپیوتر می‌شوند؟ در ادامه به بررسی نحوه نمایش انواع اطلاعات مانند متن، تصویر، ویدئو و صدا را در سیستم باینری مورد بررسی قرار خواهیم داد.

نحوه نمایش انواع داده در سیستم عددی باینری

تا کنون با عملکرد سیستم باینری تا حدودی آشنا شده‌اید اما برای اطلاع از نحوه نمایش و ذخیره سازی اطلاعات در سیستم کامپیوتری نیاز به اطلاعات بیشتری در این زمینه داریم.

نحوه نمایش اعداد دهدهی در سیستم باینری

همانطور که می‌دانید در سیستم اعداد دهدهی که تمام محاسبات ما را در بر می‌گیرند ما از جایگاه اعداد برای شناسایی بار آن استفاده می‌کنیم. به عنوان مثال در تصویر زیر جایگاه اعداد مختلف را در عدد ۱۹۶۵ مشاهده می‌کنید (یکان، دهگان، صدگان و هزارگان).

سیستم اعداد دهدهی

در سیستم باینری نیز چیزی مشابه این روش وجود دارد، یعنی به ازای هر عدد یک جایگاه وجود دارد که بار آن عدد را مشخص می‌کند. در تصویر زیر جایگاه اعداد باینری را در کنار اعداد دهدهی مشاهده می‌کنید.

جایگاه اعداد باینری

در تصویر فوق مشاهده می‌کنید که هر جایگاه نسبت به جایگاه قبلی مقدار ۲ گام افزایش دارد که از این گام‌ها برای محاسبه مقدار اعداد باینری استفاده می‌شود. به عنوان مثال معادل عدد ۹ در سیستم دهدهی، عدد ۱۰۰۱ در باینری است. برای تبدیل اعداد از باینری به دهدهی هر عدد را در جایگاهش ضرب کرده و با هم جمع می‌کنیم، جمع این مقادیر با معادل دهدهی عدد برابر خواهد بود. به عنوان مثال در تصویر زیر عدد باینری ۱۰۰۱ را به معادل آن یعنی ۹ تبدیل می‌کنیم.

تبدیل سیستم عددی باینری به دهدهی

در مثال بالا ۸+۱ برابر با ۹ خواهد بود. چرا که همانطور که می‌دانید هر عدد در صفر ضرب شود حاصلضرب صفر خواهد شد.

نحوه نمایش متن در سیستم باینری

اگر یک فایل متنی را تقسیم بندی کنیم و به عبارتی بخواهیم برای یک فایل متنی واحد گذاری انجام دهیم واحدهای ما از بزرگ به کوچک شامل: پاراگراف، جمله، کلمه و حروف الفبا خواهند بود. در سیستم کامپیوتری برای ساده‌سازی و امکان انجام عملیات توسط ماشین، همیشه از کوچکترین واحد برای تبدیل به بزرگترین واحد استفاده می‌شود. در سیستم کامپیوتر شما جهت دریافت، ذخیره‌سازی و نمایش اطلاعات متنی از کدگذاری حروف استفاده می‌شود. در واقع می‌توان گفت که حروف نیز تبدیل به اعداد می‌شوند. تصویر زیر نحوه کدگذاری حروف الفبا را در کامپیوتر نمایش می‌دهد.

کدگذاری حروف در سیستم باینری

این یک کدگذاری ساده از حروف است که البته در کامپیوترهای مدرن از کدهای ASCII یا Unicode استفاده می‌شود که ماهیت یکسانی دارند و تنها روش کدگذاری آن‌ها متفاوت است. اکنون برای ساخت یک کلمه تنها نیاز است که کدهای حروف آن کلمه کنار هم چیده شود. به عنوان مثال کلمه Dog متشکل از سه حرف است که هر کدام کد مختص به خود را دارند. تصویر زیر نحوه نمایش یک کلمه را در سیستم کامپیوتری شما نمایش می‌دهد.

کلمات در باینری

در تصویر بالا خطوط سیاه رنگ و سفید رنگ همان سیگنال‌های خاموش یا روشن هستند که حاصل آن‌ها یک کد باینری است که در نهایت در کنار هم یک کلمه را می‌سازند. به همین سادگی ساختن جمله و پاراگراف و صدها خط متن نیز امکان پذیر است. تنها با اعداد ۰ و ۱!

نحوه نمایش تصاویر و ویدئو در سیستم باینری

تصویر نیز همانند متن از بخش‌های کوچکتری به نام پیکسل تشکیل شده است. برای درک بهتر یک تصویر را پازلی از قطعات کوچک تصور کنید که هر قطعه از آن تنها یک رنگ را به خود اختصاص می‌دهد. از کنار هم قرار گرفتن این قطعات یک تصویر شکل می‌گیرد. تصویر زیر نحوه تقسیم‌بندی یک تصویر را نمایش می‌دهد:

پیکسل‌ها در تصویر

بنابراین هر تصویر به واحدهای کوچکتری به نام پیکسل تقسیم‌بندی می‌شوند که هر کدام از آن‌ها تنها شامل یک رنگ هستند. اگر رشته شما کامپیوتری باشد قطعا ادامه این سناریو برایتان قابل حدس خواهد بود، ذخیره سازی کد رنگ! اما اگر رشته‌ شما کامپیوتر نیست نگران نباشید. 

نحوه تبدیل رنگ به کد

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

کامپیوترها چگونه صحبت می‌کنند؟ آشنایی با زبان باینری (0 و 1)

این پیکسل‌ها با پیکسل‌های موجود در تصاویر کمی متفاوت هستند به همین دلیل پیکسل‌های مانیتور را پیکسل‌های سخت افزاری می‌نامند و پیکسل‌های موجود در تصاویر پیکسل‌های نرم افزاری نام دارند. هر کدام از این پیکسل‌ها با تغییر غلظت رنگ در هر بخش از این رنگ‌ها یک رنگ جدید ایجاد می‌کنند که شما تنها رنگ نهایی را خواهید دید. 

نمایش رنگ در مانیتور

در سیستم‌های کامپیوتری و مانیتورها هر تصویر یا ویدئو تقریبا شامل ۱۶ میلیون رنگ است. این بازه عددی کمک می‌کند تا یک تقسیم‌بندی ساده جهت ایجاد رنگ از آن استخراج شود. یکی از روش‌های تقسیم بندی و کدگذاری RGB نام دارد که ۳ پارامتر را به عنوان ورودی می‌گیرد که به هر رنگ اختصاص دارند. هر رنگ یک بازه بین اعداد ۰ تا ۲۵۵ به خود می‌گیرد که غلظت رنگ را در ترکیب نهایی مشخص می‌کند. به عنوان مثال کد رنگ در تصویر بالا برابر است با (RGB(155,255,255، برای ساخت رنگ سفید کد رنگ (RGB(255,255,255 و برای رنگ سیاه کد رنگ برابر با (RGB(0,0,0 خواهد بود. برای آشنایی بیشتر با ترکیب رنگ‌ها روی لینک ایجاد رنگ کلیک کنید تا رنگ‌های دلخواه خودتان را ایجاد کنید.

اکنون که با نحوه تبدیل رنگ به کد آشنا شدید می‌دانید که به راحتی و با کنار هم چیدن کد رنگ‌ها در هر پیکسل به ترتیب یک تصویر در سیستم کامپیوتری شما ذخیره و نمایش داده می‌شود.

کدگذاری رنگ

در مورد ویدئو هم همینطور عمل می‌شود. چرا که ویدئو متشکل از هزاران تصویر است و هر تصویر شامل هزاران پیکسل که یک کد رنگ را به خود اختصاص داده‌اند.

نحوه ذخیره و پخش صدا در سیستم عددی باینری

برای درک بهتر نحوه ذخیره سازی صدا بهتر است ابتدا با انواع سیگنال‌های دیجیتال و آنالوگ آشنا شوید. شکل زیر دو سیگنال آنالوگ و دیجیتال را نمایش می‌دهد.

کامپیوترها چگونه صحبت می‌کنند؟ آشنایی با زبان باینری (0 و 1)

تمام صداهای موجود در طبیعت فرمت آنالوگ دارند. برای ذخیره سازی و پخش صداها در سیستم کامپیوتری به دلیل ماهیت پیوسته بودن سیگنال آنالوگ (یک خط پیوسته شامل بی نهایت نقطه است و امکان ذخیره سازی مختصاتی ندارد) آن را به سیگنال دوم یعنی سیگنال دیجیتال تبدیل می‌کند که قابل سطح‌بندی و ذخیره سازی مختصاتی را برای سیستم کامپیوتری فراهم می‌کند. برای این تبدیل یک روش برای سیستم کامپیوتری وجود دارد و آن هم نمونه برداری از صدای آنالوگ است. تصویر زیر ماهیت بررسی یک سیگنال آنالوگ جهت نمونه برداری و سطح گذاری را نمایش می‌دهد.

تبدیل سیگنال آنالوگ به دیجیتال

برای تبدیل نمی‌توان از تمامی سطوح استفاده کرد بنابراین سیستم کامپیوتری بر اساس استانداردهای مجود اقدام به نمونه برداری و ذخیره سازی می‌کند. کاری درست مشابه تصویر زیر:

تبدیل سیگنال آنالوگ به دیجیتال در سیستم عددی باینری

در تصویر فوق صدای آنالوگ طبق دو استاندارد کیفیتی ۳۲ بیتی و ۸ بیتی نمونه برداری و تبدیل شده است (این استانداردها جهت افزایش و کاهش کیفیت جهت کاهش حجم ایجاد شده‌اند) با تبدیل سیگنال آنالوگ به دیجیتال امکان ذخیره سازی به صورت مختصاتی که با عدد تعیین می‌شود برای کامپیوتر فراهم می‌شود و در نهایت برای پخش مجدد تنها کافیست این نقاط با روش آنالوگ به هم متصل شوند که همان صدا در اسپیکر کامپیوتر ایجاد و پخش شود.

این‌ها تمامی روش‌هایی هستند که سیستم کامپیوتری شما برای صحبت و برقراری ارتباط با شما به کار برده است. یک سیستم ساده باینری متشکل از دو عدد ۰ و ۱!

دلیل استفاده کامپیوترها سیستم عددی باینری

در یک جمله می‌توان گفت سخت افزار و قوانین فیزیک. هر عددی در رایانه شما یک سیگنال الکتریکی است. در گذشته اندازه‌گیری و کنترل دقیق سیگنال‌های برقی بسیار سخت‌تر بود. راه ساده‌تر و معقول‌تر این بود که فقط بین حالت “روشن” (حاصل از بار منفی) و “حالت خاموش” (حاصل از بار مثبت) تفاوت قائل شویم. شاید بپرسید که چرا “خاموش” با بار مثبت نشان داده می شود؟ به این دلیل که الکترون‌ها دارای بار منفی هستند و الکترون‌ها بار الکتریکی را حمل می‌کنند.

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

چرا کامپیوترها فقط از سیستم باینری استفاده می‌کنند؟

در ابتدایی‌ترین حالت می‌توان گفت که استفاده از سیستم عددی باینری در ساخت رایانه‌ها به سنت تبدیل شده است و اضافه کردن رقم دیگر به این معنی است که ما باید بین سطوح مختلف جریان خاموش و روشن سطوح دیگری نیز قرار دهیم. به عنوان مثال کمی و یا خیلی زیاد. قبل از اینکه امکان پیاده‌سازی این تئوری را بررسی کنیم فرض کنیم که امکان پیاده سازی وجود دارد. می‌توانید بگویید چند سیستم کامپیوتری در سراسر جهان وجود دارد؟ چقدر بایدهزینه شود تا تمام این سیستم‌ها کنار گذاشته شوند و سیستم‌های جدید با استفاده از این مکانیزم وارد بازار شوند؟ چقدر طول می‌کشد تا برنامه‌های مختلف مانند ویندوز، آفیس، فتوشاپ و هزاران برنامه کاربردی دیگر نسخه‌ جدیدی مختص این سیستم‌های کامپیوتری بنویسند؟ با پاسخ به این سوالات متوجه خواهید شد که تمام این تغییرات به یک نتیجه ختم می‌شوند، شروع از صفر! 

البته علم ثابت کرده‌ است که هیچ چیز غیر ممکن نیست و ممکن است در قرن‌های بعدی دنیا شاهد سیستم‌های جدید با عملکردهای فوق‌العاده باشد که به مرور زمان جایگزین سیستم‌های امروزی ما شده‌اند.

آیا جایگزینی برای سیستم عددی باینری در کامپیوتر وجود دارد؟

مشکل اینجاست که اگر شما می‌خواهید از چندین سطح ولتاژ استفاده کنید، به روشی نیاز دارید که بتوانید محاسبات را به راحتی با آن‌ها انجام دهید و این امکان برای سخت افزار به راحتی امکان پذیر نیست و جایگزین مناسبی برای محاسبات به جای باینری نخواهد بود. اگرچه مواردی با این تئوری ساخته شده‌اند اما در نهایت پروژه به شکست منجر شده است. به عنوان مثال کامپیوتر سه‌گانه (Ternary computer) در دهه ۱۹۵۰ ساخته شد اما در حال حاضر توسعه روی آن متوقف شده است. اگر چه تئوری منطق سه‌گانه به مراتب کارآمدتر از باینری است، اما هیچ کس جایگزینی برای ترانزیستور باینری ندارد یا حداقل هیچ کاری در زمینه ساخت آن‌ها در همان مقیاس‌های کوچک به عنوان برای کامپیوترهای سه‌گانه انجام نشده است.

دلیل اینکه نمی‌توانیم از منطق سه گانه استفاده کنیم به نحوه کارکرد ترانزیستورها در یک کامپیوتر باز می‌گردد. چیزی به نام گیت یا دروازه و نحوه استفاده از آن‌ها برای انجام محسابات ریاضی بر مبنای اعداد دودویی یا همان سیگنال‌های ارسالی خاموش یا روشن. آن‌ها دو ورودی را می‌گیرند و عملیاتی مانند AND ،OR ،XOR و غیره را روی آن‌ها انجام می‌دهند. مدیریت دو ورودی برای ترانزیستورها بسیار آسان است. 

شما یک گام جلوتر از دیگران باشید! اگر به آی‌تی و تکنولوژی علاقه‌مندید و دوست دارید سریع‌تر در این زمینه پیشرفت کنید، همین حالا به جمع ۲۸۲۷ عضو همیار آی‌تی بپیوندید، دسترسی به تمام آموزش‌های پریمیوم، دریافت جدیدترین آموزش‌های کاربردی مرتبط با آی‌تی و استفاده از مشاوره‌ی رایگان، برخی از مزایای عضویت در سایت هستد، شما نیز به کاربران همیار پیوسته و همین حالا وارد دنیای حرفه‌ای‌ها شوید... من هم می‌خواهم عضو ویژه‌ی همیار شوم

4 گفتگو

در بحث‌‌ پیرامون این مقاله شرکت کنید، سوالات شما توسط کارشناسان همیار آی‌تی پاسخ داده می‌شود...

  1. پویا پویا گفت:

    مرسی از مقاله خوبتون فقط من متوجه نشدم چرا هر بیت فقط ۰یا۱ هست چرا هردو باهم نیستند

    1. فرشاد گوهری فرشاد گوهری گفت:

      سلام پویا جان، به این دلیل که هر ترانزیستور در یک لحظه فقط یک ولتاژ رو می‌تونه در خودش نگه داره (۰ ولت یا ۵ ولت) و از نظر الکترونیکی امکان اینکه همزمان ۲ ولتاژ مختلف داشته باشیم وجود نداره (مثل اینکه بگیم یک لامپ همزمان هم روشن باشه و هم خاموش) البته این موضوع فقط در مورد کامپیوترهای فعلی ما صدق می‌کنه و با پیشرفت تکنولوژی و اختراع کامپیوترهای کوانتومی این موردی که شما می‌فرمایید هم امکان‌پذیر هست (البته نحوه‌ی کار کامپیوترهای کوانتومی کاملا متفاوت هست و با فیزیک کوانتوم سروکار دارند) اگر به این موضوعات علاقه‌مندید،‌ توصیه می‌کنم حتما مقاله‌ی زیر رو هم بخونید، خیلی می‌تونه براتون جذاب باشه:
      https://www.hamyarit.com/basic/quantum-computers/

  2. Avatar Zaphrone گفت:

    خیلی ممنون از مطلب خوبتون
    نمیدونید چقدر این موضوع ذهنم رو ۱۶ سال درگیر کرده بود
    کامپیوتر برام هشتمین عجایب دنیا بود و با خودم میگفتم اصلا چطور ممکنه و چون فکر میکردم درکش سخته هیچ وقت دنبالش نرفتم
    فقط باز سؤالی که برام پیش اومد اینه که اندازه گیری و کنترل سیگنال های برقی به چه صورته

    1. فرشاد گوهری فرشاد گوهری گفت:

      سلام دوست عزیز، خوشحالیم که این آموزش برای شما مفید بوده
      اگر منظورتون ولتاژ هست که کلا ۲ و در بعضی مواقع ۳ ولتاز توی سیستم وجود داره و کل فرایند با همین ۳ مورد انجام میشه، معمولا ولتاژ ۰ به معنای بیت ۰ و ولتاژ ۵ به معنای بیت ۱ هست (البته بسته به نوع سخت‌افزار می‌تونه متفاوت هم باشه) اما بحث کنترل ولتاژ اگر از نظر کم و زیاد بودن مد نظرتون هست معمولا یک نویز مارجین هم در این مباحث وجود داره که اگر ولتاژ از یک حدی کمتر بشه (مثلا برای بیت ۱ اگر از ۴ ولت پایین‌تر بیاد) سیستم اون رو نامعتبر می‌شناسه (این مقدار بستگی به حاشیه‌ی نویز یا همون نویز مارجین داره که در شرایط مختلف با روابط متفاوتی محاسبه میشه)
      امیدوارم درست متوجه منظورتون شده باشم و توضیحم براتون مفید بوده باشه (می‌دونم این مفاهیم شاید یه مقداری نامفهوم و گنگ هست، اما فکر می‌کنم با مطالعه‌ی چند باره‌ی این آموزش تا حد خوبی با این موارد آشنا میشید)