Binary چیست و چرا کامپیوترها از آن استفاده میکنند
کامپیوترها کلمات یا اعداد را به روش انسان درک نمیکنند. نرمافزارها به کاربران اجازه میدهند تا بدون اطلاع داشتن از این موضوع که کامپیوترها در واقع چگونه کار میکنند، به راحتی با کامپیوتر کار کنند. اما در پایینترین سطح از یک کامپیوتر، همه چیز توسط یک سیگنال الکتریکی دودویی نشان داده میشود که در یکی از دو حالت زیر ثبت میشود: روشن یا خاموش. برای درک اطلاعات پیچیده، کامپیوتر باید آنها را به صورت باینری (Binary) رمزگذاری کند.
پیشنهاد می کنیم که در این خواندنی تا پایان با مجله تکنولوژی و علم و دانش نیوان تک همراه باشید.
باینری (دودویی) یک سیستم عددی بر پایه عدد 2 است. مبنای عدد 2 به این معنی است که فقط دو رقم وجود دارد، عددهای 0 و 1، که با وضعیت روشن و خاموش بودن کامپیوتر مطابقت دارد. شما احتمالاً با مبنای عدد 10، یا همان سیستم اعشاری آشنا هستید. سیستم اعشاری یا رقم دهدهی (Decimal) از ده رقمی استفاده میکند که از 0 تا 9 است و سپس در کنار هم قرار میگیرند و اعداد دو رقمی را تشکیل میدهند. در این سیستم ارزش هر رقم ده برابر بیشتر از رقم آخر است (1 ، 10 ، 100 و غیره). مبنای Binary هم از این لحاظ مشابه سیستم اعشاری است و ارزش هر رقم دو برابر بیشتر از رقم قبلی است.
محاسبه در مبنای Binary (دودویی)
در مبنای باینری، رقم اول ارزش 1را در سیستم دهدهی دارد. رقم دوم ارزش 2، رقم سوم ارزش 4، رم چهارم ارزش 8 و غیره را دارد، هر بار این ارزش دو برابر میشود. با جمع این اعداد با هم به شما یک عدد در مبنای دهدهی (اعشاری) میدهد. بنابراین،
با در نظر گرفتن عدد 0، مقدار 16 (در مبنای دهدهی) را برای چهار بیت بر مبنای باینری به ما میدهد. اگر 8 بیت در مبنای باینری داشته باشید در این صورت مقدار 256 را در مبنای دهدهی (اعشاری) خواهید داشت. با توجه به مطالب بالا، مبنای باینری فضای بیشتری را برای نشان دادن اعداد احتیاج دارد مثلا چهار رقم در مبنای اعشاری، 10000 مقدار را در مبنای Binary ایجاد میکند. ممکن است به نظر برسد که کلی وقت صرف شده است تا یک سیستم شمارش مشکلتر اختراع شود، اما باید بدانید که کامپیوترها سیستم باینری را خیلی بهتر از سیستم دهدهی درک میکنند. مطمئنا مبنای Binary فضای بیشتری را اشغال میکند اما سختافزارها این مشکل را حل کردهاند و در عین حال برای بعضی از مسائل مانند پردازش منطقی مبنای باینری بهتر از اعشاری عمل میکند.
مبنای دیگری وجود دارد که در برنامهنویسی نیز استفاده میشود که به آن هگزادسیمال گفته میشود. اگرچه کامپیوترها با هگزادسیمال کار نمیکنند، اما برنامهنویسان از آن برای نشان دادن آدرسهای دودویی (Binary) که قابل خواندن توسط انسان است، هنگام نوشتن کد استفاده میکنند. این بدان دلیل است که دو رقم هگزادسیمال میتواند یک بایت کامل برابر هشت رقم باینری را نشان دهد. هگزادسیمال از 0 – 9 مانند مبنای اعشاری و همچنین حروف A تا F برای نشان دادن شش رقم اضافی استفاده میکند. در کل مبنای هگزادسیمال دارای 16 عدد و حروف میباشد.
پس چرا کامپیوترها از مبنای Binary استفاده میکنند؟
کوتاهترین جواب برای این سوال، سخت افزار و قوانین فیزیک است. هر عدد در کامپیوتر یک سیگنال الکتریکی است و در اوایل به وجود آمدن کامپیوتر محاسبه، اندازهگیری و کنترل دقیق سیگنالهای الکتریکی بسیار دشوارتر بود. منطقیتر این بود که فقط بین یک حالت روشن (که با بار منفی نشان داده میشود) و حالت خاموش (که با یک بار مثبت نشان داده میشود) بتوان تفاوت قائل شد. برای کسانی که نمیدانند چرا حالت خاموش با بار مثبت نشان داده میشود باید بیان کرد که الکترونها بار منفی دارند و این یعنی اینکه الکترونهای بیشتر به معنای جریان بیشتر با بار منفی هستند.
بنابراین، کامپیوترهای اولیه با سایز بسیار بزرگ در اندازه یک اتاق، برای ساخت سیستمهای خود از باینری استفاده میکردند و اگرچه آنها از سختافزارهای خیلی بزرگی استفاده میکردند، اما در حال حاضر همان اصول اساسی حفظ شده است. کامپیوترهای مدرن از آنچه به عنوان ترانزیستور شناخته میشود برای انجام محاسبات باینری استفاده میکنند. در اینجا یک نمودار از ترانزیستور اثر میدان (FET) نشان داده شده است.
این نوع ترانزیستور اساساً، فقط در صورت وجود جریان در دروازه، اجازه میدهد تا جریان از منبع به بخش زهکشی (Drain) برسد. این یک سوئیچ باینری است. تولیدکنندگان میتوانند این ترانزیستورها را فوق العاده کوچک بسازند حتی تا 5 نانومتر یا تقریباً به اندازه دو رشته DNA. روش بالا نحوه کار پردازندههای مدرن است و حتی آنها ممکن است از مشکلات مربوط به تفکیک دادن بین حالت روشن و خاموش دچار زیان شوند. (البته این موضوع بیشتر به دلیل اندازه مولکولی غیر واقعی آنها است، که آن هم به دلیل عجیب بودن مکانیک کوانتوم است).
چرا فقط مبنای 2؟
بنابراین ممکن است فکر کنید، چرا فقط 0 و 1؟ آیا نمیتوان رقم دیگری اضافه کرد؟ در حالی که برخی از این موضوعات در ساخت کامپیوترها به روش متداول موجود بر میگردد، اما افزودن رقم دیگری به این معنی است که ما باید بین سطوح مختلف جریان تفاوت قائل شویم، نه فقط خاموش و روشن، بلکه حالتهایی مانند: کم و خیلی کم.
مسئله اینجا است که اگر میخواهید از چندین سطح ولتاژ استفاده کنید، به روشی نیاز دارید که بتوانید به راحتی محاسبات را با آنها انجام دهید و سختافزار آن به عنوان جایگزینی برای محاسبات باینری قابل اجرا نیست. این نوع کامپیوتر واقعاً وجود دارد و آن را یک کامپیوتر سه گانه مینامند و از دهه 1950 وجود دارد، اما توسعه آن همان موقع متوقف شد. منطق سه تایی بسیار کارآمدتر از باینری است، اما هنوز هیچ کس جایگزینی موثری برای ترانزیستور باینری ندارد، یا حداقل هیچ کاری برای توسعه آنها در مقیاسهای کوچک مانند باینری انجام نشده است.
دلیل اینکه نمیتوانیم از منطق سه گانه استفاده کنیم، به نحوه قرارگیری ترانزیستورها در کامپیوتر بر میگردد، چیزی به نام دروازه و نحوه استفاده از آنها برای انجام محاسبات ریاضیات است. دروازهها دو ورودی میگیرند، روی آنها عملیاتی انجام میدهند و یک خروجی بر میگردانند.
این روش دارای یک جواب طولانی است به همین دلیل ریاضیات باینری برای کامپیوتر از هر چیز دیگری آسانتر است. منطق بولی به راحتی برای سیستم باینری با نشان دادن حالت درست (روشن) و غلط (خاموش) ترسیم میشود. دروازهها در کامپیوتر با منطق بولی کار میکنند. آنها دو ورودی میگیرند و عملیاتی مانندAND ،OR ،XOR و غیره را روی آنها انجام میدهند. مدیریت دو ورودی آسان است. اگر بخواهید پاسخها را برای هر ورودی احتمالی نمودار کنید، آنچه که به عنوان جدول حقیقت شناخته میشود را خواهید داشت.
یک جدول حقیقت باینری که با منطق بولی کار میکند، برای هر عملیات اساسی ممکن است چهار خروجی داشته باشد. اما از آنجا که دروازههای سه تایی سه ورودی میگیرند، جدول حقیقت سهگانه تعداد 9 یا تعداد بیشتری خروجی دارد. در حالی که یک سیستم باینری دارای 16 عملگر ممکن است (2^2^2)، یک سیستم سه تایی دارای 729 (3^3^3) عملگر ممکن است. در این شرایط مقیاسبندی به یک مسئله تبدیل می شود زیرا گرچه سه گانه کارآمدتر است، اما از نظر نمایی نیز پیچیدهتر است.