زبان باینری چیست؟
زبان رایانه ها ، زبان باینری ( Binary ) یا همان صفر و یک است.کوچکترین واحد داده در رایانه بیت نام دارد که می تواند مقدار 0 یا 1 را در خود جای دهد.یعنی هر بیت می تواند 2 حالت متفاوت داشته باشد. از باینری یا دودویی چیست؟ تجمع 8 بیت ، یک بایت تشکیل می شود و مابقی واحد های داده اعم از کیلوبایت ، مگابایت ، گیگابایت و . از تجمع تعدادی از بیت ها تشکیل می شود. به نسبت تعداد بیت های استفاده شده در واحد های بزرگتر،حالت های قابل اجرا تغییر می کند و هرچه تعداد بیت ها بیشتر باشد،حالت های بیشتری برای اجرا وجود دارد.
این حالت ها در واقع همان دستورات زبان باینری هستند.در زبان باینری فقط دو عدد 0 و 1 وجود دارد . یعنی فقط حالت روشن یا خاموش وجود دارد و این امر باعث افزایش سرعت پردازش در رایانه ها می شود. اما اگر قرار بود از اعداد بر مبنای 10 ( یعنی اعداد 0 تا 9 ) استفاده کنیم ،حالت ها افزایش پیدا می کرد و پردازش اطلاعات سخت تر می شد و مسلما سرعت کاهش پیدا می کرد.پردازش دودویی برای رایانه ها راحت تر است ،همچنین فضای کمتری را نیز اشغال می کند.
محاسبه ی اعداد بر مبنای دو
اعدادی که ما در زندگی روزمره و واقعی از آنها استفاده می کنیم،اعداد بر مبنای 10 هستند.اصلا منظور از مبنای 10 چیست و چه تفاوتی با مبنای 2 دارد؟
همانطور که در تصویر مشخص است،راست ترین رقم در اعداد بر مبنای 10 ارزشی معادل 010 دارد. رقم سمت چپ آن1 10 و به همین ترتیب هرچه به سمت چپ می رویم به ارزش ها افزوده می شود.در اعداد بر مبنای 2 یا همان دودویی اعداد به جای 10 بر مبنای 2 محاسبه می شوند.ضمن اینکه ارقام تشکیل دهنده ی این اعداد فقط 0 و 1 هستند. به تصویر بعدی دقت کنید
در محاسبه اعداد بر مبنای2 هم دقیقا مانند مبنای 10 رفتار می شود بااین تفاوت که راست ترین رقم ارزشی معادل 02 دارد،سمت چپ آن ارزش 12 دارد و هرچه به سمت چپ می رویم ارزش ارقام افزایش پیدا می کند.
نحوه نمایش متن به زبان باینری
به جدول زیر دقت کنید
برای ساخت یک کلمه کافیست کدهای حروف آن کنار هم چیده شوند. به مثال زیر توجه کنید :
در این تصویر خطوط سفید و مشکی نشان دهنده ی سیگنال های خاموش یا روشن هستند که ترکیب آنها یک کد باینری ایجاد می کند. از کنارهم قرار دادن این کدها می توانیم کلمه،جمله و پاراگراف ایجاد کنیم.
نحوه ی نمایش تصاویر در زبان باینری
تصاویر در رایانه از قسمت های کوچکی به نام پیکسل تشکیل شده اند . تصور کنید یک پازل دارید که هر قطعه تنها یک رنگ دارد از کنارهم قرار دادن قطعات مختلف پازل تصویر کاملی تشکیل می شود.
نحوه ی نمایش رنگ ها در زبان باینری
همانطور که رنگ ها در دنیای واقعی از ترکیب سه رنگ اصلی قرمز،سبز،آبی تشکیل شده است در رایانه ها هم رنگ ها به همین صورت ایجاد می شوند.تمامی صفحه نمایش ها یا مانیتور ها از تعداد زیادی پیکسل تشکیل شده اند، این پیکسل ها با پیکسل تصاویر متفاوت است.به پیکسل های مانیتور، پیکسل های سخت افزاری و به پیکسل تصاویر،پیکسل های نرم افزاری می گویند.هرچه میزان پیکسل های مانیتور بیشتر باشد وضوح تصویر نیز بالاتر است. هر پیکسل در مانیتور از سه رنگ قرمز،سبز،آبی تشکیل شده که با تغییر غلظت هرکدام از این سه رنگ، باینری یا دودویی چیست؟ یک رنگ جدید ایجاد می شود
در سیستم های کامپیوتری،مانیتور ها و صفحه نمایش ها هر تصویر یا ویدئو حدودا شامل 16 میلیون رنگ است.یکی از روش های کد گذاری رنگ RGB نام دارد که سه مقدار برای رنگ های قرمز،سبز و آبی دریافت می کند. هر کدام از این سه رنگ می توانند مقداری بین 0 تا 255 را داشته باشند. با تغییر بازه ی عددی رنگ ها نیز تغییر می کنند. به تصاویر زیر دقت کنید :
هرکدام از ردیف ها در تصویر قبل سه باکس با کد رنگ متفاوت دارند. در صورتیکه رنگ پایه ی هر ردیف یکسان است.
نمایش ویدئو ها در کامپیوتر دقیقا مانند تصویر است. زیرا ویدئو از هزاران تصویر تشکیل شده و هر تصویر نیز شامل هزاران پیکسل است که یک کد رنگ خاص دارند.
چرا رایانه ها از سیستم باینری استفاده می کنند؟
دلیل اصلی این است که هر عدد در رایانه به صورت یک سیگنال الکتریکی است. در گذشته اندازه گیری این سیگنال ها بسیار دشوار بود. راه ساده برای اندازه گیری سیگنال ها این است که تنها دو حالت امکان داشته باشد،یعنی روشن یا خاموش.تصور کنید دو حالت دیگر مثلا کمی روشن یا کمی خاموش هم جز حالات سیگنال ها بود !! چطور می توانستیم از سیگنال ها برای محاسبات یا ذخیره یا پردازش استفاده کنیم. مسلما کار بسیار دشوار بود.اما این امر به این معنی نیست که امکان ساخت چنین رایانه هایی وجود ندارد.اما به دلیل سازگاری دنیای امروز با این سیستم عددی در رایانه ها ، هماهنگی مجدد تکنولوژی ها با روشی غیر از باینری بسیار زمان بر خواهد بود. فرض کنید میلیون ها میلیون رایانه باید با سیستم عامل ، نرم افزار ها و برنامه های جدید هماهنگ شوند که کاری بسیار زمان بر و دشوار است. اما این امر به معنی غیر قابل انجام بودن نیست.
مبنای دودویی کامپیوتر | ۰ و ۱ در کامپیوتر چیست؟
در علم ریاضی مبنا (نام های دیگر آن پایه و بیس است) یعنی تعداد رقم های فردی مع برای نوشتن یک عدد در دستگاه عددنویسی ارزش مکانی بکار می برند. به عنوان مثال، در سیستم عددنویسی ده دهی که امروزه تبدیل به یکی از رایج ترین دستگاه های شمارش در جهان شده است، از ده رقم صفر تا نه استفاده می کنیم، بنابراین پایه یا مبنا این دستگاه ده است. بیشتر اعدادم معمولی که در زندگی روزمره استفاده می کنیم بر مبنای ده است اما در علم کامپیوتر نه. این مقاله توسط وبسایت چهارراه کامپیوتر تهیه شده است.
مبنا در علم کامپیوتر
مبنای مورد استفاده در محاسبات رایانه مبنای دودویی است که در ادامه به آن می پردازیم.
دستگاه اعداد دودیی
دستگاه اعداد دودویی یا همان مبنای دودویی (دورین، باینری) هر عدد را با دو رقم صفر و یک نشان می دهد. به این نمایش، نمایش اعداد در مبنای دودویی می گوییم.
روش تبدیل مبنا ها در کامپیوتر و خواندن اعداد باینری
روش تبدیل مبناها در کامپیوتر چگونه است؟ به دو حالت مبنا ها را می توانیم تبدیل می کنیم. از ده دهی به مبنای دودویی و برعکس از مبنای دودویی به ده دهی.در هر حالت نحوه خواندن اعداد باینری را هم توضیح می دهیم.
حالت اول: از ده دهی به دودویی
یک روش بسیار ساده و معمول تبدیل مبنای ده دهی به دودویی متوالی تقسیم کردن بر عدد ۲ است و باقی مانده های بدست آمده از این عملیات را تا رسیدن خارج قسمت به عدد صفر تقسیم می کنیم. در پایان، آخرین خارج قسمت و باقی مانده بدست آمده را از آخر به اول در کنار هم می نویسیم. عددی که بدست می آید یک عدد در مبنای دودویی است.
حالت دوم: از دودویی به ده دهی
اول از همه ارزش مکانی اعداد را حساب می کنیم به این صورت که عدد اول از سمت راست در جایگاه دو به توان صفر است و عدد دوم در جایگاه دو به توان یک و همینطور تا آخر. بعد هر کدام از این اعداد را در ارزش مکانی شان ضرب می کنیم و همه آنها را با هم جمع می کنیم. فراموش نکنید که باید در مبنای ده جمع کنید. عددی که بدست می آوریم در مبنای ده است و مساوی با عدد اولیه در مبنای دودویی است.
نحوه خواندن ساعت باینری
ساعت باینری زمان را بر پایه قاعده های باینری نشان می دهد. ستون اول ساعت، ستون دوم دقیقه، ستون سوم ثانیه هر ستون چهار خط دارد. مطابق شکل زیر خط اول عدد یک، خط دوم عدد دو، خط سوم عدد چهار و خط آخر عدد هشت است. ستون سمت چپ عدد دهگان و ستون سمت راست عدد یکان را نمایش می دهند که اگر اعداد هر ستون را جمع کنیم و بعد ستون ها را با هم جمع می کنیم ساعت، دقیقه و ثانیه را بدست می آوریم.
دلیل استفاده از مبنای دودویی در کامپیوتر
دلیل استفاده از مبنای دودویی در کامپیوتر؟ کامپیوترها به خاطر سخت افزار و محاسبات فیزیکی از مبنای دودویی استفاده می کنند. هر عددی که در کامپیوتر می بینید حامل یک سیگنال الکتریکی است این سیگنال ها در اندازه و قدرت های متفاوت هستند و همیشه از باینری استفاده می کنند. کامپیوترهای مدرن و امروزی از برای محاسبات باینری سنگین شان از ترانزیستورها بهره می گیرند.
کار ترانزیستور در این فرآیند این است که به جریان ورودی اجازه عبور از منبع را می دهد و آن را به سمت مصرف کننده هدایت می کند. در زمان حال، اندازه ترانزیستور ها بسیار کوچک شده و اکثر آنها تنها پنج نانومتر فضا می گیرند. در CPU های امروزی شاهد استفاده از این ترانزیستورهای کوچک هستیم.
چرا در کامپیوتر فقط از مبنای دودویی استفاده می کنیم؟
خب پاسخ اول این است که یجورایی استفاده از مبنای دودویی در کامپیوتر عادت مان شده. مسئله بعدی رقم است. با داشتن بیش از دو رقم کار ما دو برابر می شود یعنی انجام محاسبات بسیار سخت تر و وقت گیر تر می شوند. البته هنوز بیشتر سخت افزارها از عهده انجام محاسبات در سیستم های بر مبنای سه بر نمی آیند. ساخت چنین سخت افزارهایی بسیار سخت باینری یا دودویی چیست؟ است. اولین نسخه از دستگاهی بر مبنای سه، در دهه پنجاه میلادی ساخته شد. روی کاغذ همه چیز عالی بنظر می رسید اما در عمل بازده مناسبی از خود نشان نداد. علت ضعف این دستگاه بخاطر روش کار ترانزیستورها بود. آنها برای دو ورودی یک خروجی در نظر می گرفتند و بازده سیستم پایین می آمد. همچنین این دستگاه خطا های محاسباتی فراوانی داشت و در انجام بسیاری عملیات های ریاضی باز می ماند.
اگر دستگاهی بر مبنای دودویی کار کند. دو ورودی آن چهار خروجی خواهند داشت ولی در مبنای سه خروجی ها حداقل باید نه عدد باشند. مشکل بعدی عملگر ها هستند. در باینری چهارده عملگر نیاز داریم اما در مبنای سه به بیش از هزار و نهصد عملگر نیاز است. به خاطر همین مشکلات فعلا کسی مشتاق به کار کردن با سیستم های در مبنای سه نیست. شاید روزی بتوانیم از مبنای سه هم استفاده کنیم اما در حال حاضر چنین امری بعید به نظر می رسد.
جدول باینری
در جدول باینری زیر، معادل باینری تبدیل شده به Decimal ، Octal ، Hex ، ASC2 را می توانید مشاهده کنید.
باینری چیست و چگونه توسط کامپیوتر استفاده میشود؟
همانطور که میدانید کامپیوترها همانند انسانها اعداد و کلمات را درک نمیکنند و علیرغم ظاهر نرمافزارهای امروزی، کامپیوتر همهچیز را به صورت سیگنال الکتریکی باینری(در مبنای ۲) دریافت میکند.
در اعداد باینری تنها دو رقم ۰ و ۱ وجود دارد که در علم کامپیوتر نمایانگر روشن یا خاموش بودن سیگنالهاست. ما به صورت روزمره از مبنای ده استفاده میکنیم که در آن ارقام از ۰ تا ۹ بوده و ارزش هر رقم ده برابر رقم سمت راست خود است. در باینری نیز اساس همین است و ارقام ۰ و ۱ پشت سر هم چیده شدهاند و هر رقم دو برابر رقم سمت راست خود ارزش دارد.
محاسبهی باینری
راستترین رقم ارزش ۲ ۰ دارد، رقم سمت چپ آن ارزش ۲ ۱ برابر، چپی ۲ ۲ برابر و به همین شکل تا چپترین رقم. بنابراین ۱۱۱۱ در باینری معادل ۱*۸+۱*۴+۱*۲+۱*۱ یعنی ۱۵ است. شاید در نظر ما باینری بیهدف و کمکاربرد باشد، اما برای کامپیوتر اینگونه نیست و این مبنای اعداد بهترین روش برای ارائهی اطلاعات به سختافزار است.
روش دیگر مورد استفاده در برنامهنویسی، مبنای ۱۶ است. البته کامپیوتر مستقیما آن را درک نمیکند، اما برنامهنویسان میتوانند از آن برای ارائهی سادهتری از باینری استفاده کنند. در مبنای ۱۶ از ارقام ۰ تا ۹ و همچنین حروف A تا F(برای ۱۰ تا ۱۵) استفاده میشود.
چرا کامپیوترها از باینری استفاده میکنند؟
پاسخ کوتاه دو کلمه است: سختافزار، فیزیک! هر عدد در باینری یا دودویی چیست؟ کامپیوتر شما یک سیگنال الکتریکی است که صرفنظر از اندازه و قدرت خود همیشه از باینری استفاده کردهاند. کامپیوترهای مدرن از ترانزیستورها جهت محاسبات باینری استفاده میکنند.
به صورت کلی، ترانزیستور در صورت وجود جریان در Gate، اجازهی عبور آن از منبع به مصرفکننده را میدهد. امروزه اندازهی ترانزیستورها بسیار کوچک(در حد ۵ نانومتر، یعنی معادل با دو رشتهی DNA!) است و در CPU های مدرن استفاده میشوند.
چرا فقط مبنای ۲؟
پاسخ این سوال نیز چند بعد دارد. یک بعد مسئلهی عادت و سنت است؛ بعد دیگر معنای هر رقم است. یعنی با باینری یا دودویی چیست؟ داشتن بیش از ۲ رقم باید معنایی نظیر کم و زیاد را نیز به روشن و خاموش اضافه کنیم که انجام محاسبات برای این گونه مبناها کار پیچیده و زمانبری است و سختافزارهای مورد استفادهی ما از پس آن بر نمیآیند. البته این به آن معنی نیست که توانایی ساخت اینگونه سختافزارها وجود ندارد؛ در اصل جالب است بدانید که چنین ابزاری(برای مبنای ۳) در دههی ۵۰ میلادی ساختهشد و علیرغم توانایی بالا بر روی کاغذ، در عمل نتوانست قدرت قابل توجهی از خود نشان دهد.
علت ضعف این دستگاه در روش عملکرد ترانزیستورها است. چرا که آنها در Gateها قرار گرفته و از دو ورودی، یک خروجی تهیه میکنند.
بنابراین بدیهی است که مبنای دو برای این کار ایدهآل است و انواع عملیات ریاضی و منطقی بر روی آنها انجام میشود. عملیاتی که شامل And، Or، Xor و موارد زیاد دیگر میشود.
اگر دستگاه بر مبنای ۲ کار کند، برای دو ورودی ۴ خروجی متفاوت قابل تصور است، ولی در حالت مبنای ۳ تعداد خروجیهای ممکن به ۹ میرسد. ضمنا یک سیستم باینری ۱۴ عملگر دارد، درحالی که در مبنای ۳ به ۱۹۶۸۳ عملگر نیاز است! بنابراین علیرغم قدرت بهظاهر بالاتر مبنای ۳، کار با آن بسیار سختتر و زمانگیر است.
البته کسی از آینده خبر ندارد و ممکن است روزی مبنای ۳ فراگیر شود، چرا که امروزه ما به سرعت در حال استفاده از تمامی تواناییهای باینری هستیم و بعید نیست روزی دیگر پاسخگوی نیازهای ما نباشد. اما به هر حال در این لحظه، همچنان باینری زبان مورد استفادهی جهانیان است.
اعداد باینری — به زبان ساده (+ دانلود فیلم آموزش رایگان)
در الکترونیک و در سیستمهای کامپیوتری و دیجیتالی، به منظور انتقال اطلاعات از اعداد دودویی یا باینری (binary) که در قالب 0 و 1 هستند استفاده میشود.
محتوای این مطلب جهت یادگیری بهتر و سریعتر آن، در انتهای متن به صورت ویدیویی نیز ارائه شده است.
برخلاف مدارهای غیرخطی و آنالوگی مانند تقویتکنندههای AC که وظیفهی پردازش سیگنالهایی با فرکانس و دامنهی متغیر بر عهده دارند، مدارهای دیجیتال سیگنالهایی را پردازش میکنند که تنها دو سطح ولتاژ یا دو حالت دارند. این دو حالت «0 منطقی» و «1 منطقی» نام دارند.
به طور کلی «1» منطقی نشاندهندهی ولتاژ بالاتر مانند 5 ولت است و معمولاً به عنوان مقدار HIGH (بالا) شناخته میشود. «0» منطقی نیز نمایانگر ولتاژ پایینتر مانند 0 ولت یا زمین است و معمولاً به عنوان مقدار LOW (پایین) نامگذاری میشود. این دو سطح ولتاژ گسسته، نمایندهی مقادیر دیجیتالی 0 و 1 بوده و در مدارهای دیجیتالی و کامپیوتری به عنوان ارقام باینری (BInary digiTS) و یا به اختصار «بیت» (BITS) شناخته میشوند.
بیتهای باینری صفر و یک
استفاده از اعداد باینری در سیستمهای الکترونیک دیجیتال بسیار مناسب است، زیرا در این اعداد تنها دو مقدار بولی مجاز برای نمایش 0 یا 1 منطقی وجود دارد.
«دستگاه اعداد باینری» یک دستگاه شماره گذاری پایهی 2 است که از همان قوانین مرسوم ریاضی و دستگاه رایج اعداد دهدهی یا اعداد پایهی 10 تبعیت میکند. در این دستگاه به جای توانهای 10 (10 n ) مثل 1، 10، 100، 1000 و … از توانهای 2 (2 n ) مثل 1، 2، 4، 8، 16، 32 و … استفاده میشود؛ لذا ارزش هر بیت دو برابر بیت قبل از خود خواهد بود.
در مدارهای دیجیتالی و سیستمهای کامپیوتری محدودیتی برای انتخاب ولتاژها وجود ندارد، اما معمولاً ولتاژهای کمتر از 10 ولت به کار میروند. در دیجیتال این ولتاژها «سطوح منطقی» نامیده میشوند و یک سطح ولتاژ بیانگر وضعیت HIGH و سطح ولتاژ پایینتر نشاندهندهی وضعیت LOW است. وجود هر دو وضعیت HIGH و LOW برای استفاده از دستگاه اعداد باینری ضروری است.
سیگنالهای دیجیتال از سطوح ولتاژ گسسته یا متمایزی تشکیل شدهاند که دائماً بین دو وضعیت HIGH و LOW تغییر میکنند. اما وجه تمایز سیگنالها یا ولتاژهای «دیجیتال» از سایر سینگالها چیست و چگونه میتوان سطوح ولتاژ HIGH و LOW را نشان داد؟ برای درک این موضوع ابتدا باید بدانیم که مدارها و سیستمهای الکترونیکی به دو دستهی اصلی تقسیم میشوند:
- مدارهای آنالوگ: مدارهای آنالوگ یا خطی، وظیفهی تقویت یا پاسخ دادن به سطوح ولتاژ متغییری را بر عهده دارند که حتی ممکن است در یک دورهی تناوب از یک مقدار مثبت به یک مقدار منفی تغییر کنند.
- مدارهای دیجیتال: مدارهای دیجیتال برای کارکرد صحیح باینری یا دودویی چیست؟ به دو سطح ولتاژ متمایز نیاز دارند. این دو ولتاژ مثبت یا منفی نشاندهندهی سطوح منطقی 0 یا 1 هستند.
خروجی ولتاژ آنالوگ
با بررسی مثالهای زیر تفاوتهای میان مدار آنالوگ و مدار دیجیتال را به سادگی درک خواهید کرد.
این مدار نمونهای از یک مدار آنالوگ است. در این مدار با چرخش ترمینال متحرک پتانسیومتر، خروجی پتانسیومتر بین صفر ولت و ولتاژ ماکزیمم (Vmax) تغییر خواهد کرد. میتوان ولتاژ خروجی را به آرامی و یا به سرعت از یک مقدار به مقداری دیگر تغییر داد؛ اما بین دو سطح ولتاژ متفاوت هیچ تغییر ناگهانی یا پلهای وجود نخواهد داشت و در نتیجه ولتاژ خروجی دائماً متغیر تولید خواهد شد. دما، فشار، سطح مایع و شدت نور نمونههایی از سیگنالهای آنالوگ هستند.
خروجی ولتاژ دیجیتال
مدار بررسی شده در مثال بالا را بهگونهای تغییر میدهیم که به یک مدار دیجیتال تبدیل شود. برای این منظور، به جای استفاده از تنها یک مقاومت متغیر، زنجیرهای از مقاومتها را به هم متصل میکنیم. همچین به جای ترمینال متحرک، از یک کلید دوار استفاده میکنیم، بهگونهای که این کلید به محلهای اتصال دو مقاومت (گرهها) وصل شده و یک شبکهی تقسیم ولتاژ ساده را ایجاد میکند. با چرخش کلید از یک موقعیت به موقعیت بعدی و یا از یک گره به گره بعدی، ولتاژ خروجی (Vout) به سرعت مقادیر گسسته و متمایزی اختیار میکند. همانگونه که در نمودار خروجی نشان داده شده است، این سطوح ولتاژ بسته به موقعیت کلید ضرایبی از 1.0 ولت خواهند بود.
لذا در این مثال، ولتاژ خروجی میتواند 2 ولت، 3 ولت، 5 ولت و … باشد، اما نمیتواند مقادیری مثل 2.5 ولت، 3.1 ولت و یا 4.6 ولت اختیار کند. همچنین به راحتی میتوان با افزایش تعداد پلههای کلیدزنی گسسته، سطوح ولتاژ کوچیکتری تولید کرد. برای این کار تنها کافی است تعداد عناصر مقاومتی در شبکهی تقسیم ولتاژ را افزایش دهیم.
با بررسی دو مثال بالا متوجه شدیم که تفاوت عمده میان یک سیگنال یا کمیت آنالوگ با یک کمیت دیجیتال به این موضوع بر می گردد: مقدار یک کمیت آنالوگ با گذشت زمان پیوسته تغییر میکند، در حالی که یک کمیت دیجیتال تنها مقادیر گسسته یا پلهای – HIGH و LOW – اختیار میکند.
در خانهها به منظور افزایش و کاهش شدت نور یا روشنایی لامپها، از «دیمر» (Dimmer) استفاده میشود. دیمرها با تولید یک خروجی آنالوگ، طیف متغیری بین خاموشی مطلق و ۱۰۰% نور یک لامپ را ممکن میسازند. از طرف دیگر کلیدهای روشنایی معمولی تنها دو وضعیت ایجاد میکنند، با به کار بردن این کلیدها لامپ یا روشن (HIGH) و یا خاموش (LOW) خواهد بود. در نتیجه یک خروجی دیجیتال روشن-خاموش تولید میشود.
در بسیاری از مدارها، سیگنالهای دیجیتال و آنالوگ به یکدیگر تبدیل میشوند، مانند مبدلهای آنالوگ به دیجیتال Analogue to Digital Converter) ADC) و یا مبدلهای دیجیتال به آنالوگ Digital to Analogue Converter) DAC). در هر صورت، سیگنال دیجیتال ورودی یا خروجی، مقدار باینری معادل سیگنال آنالوگ خواهد بود.
سطوح منطقی دیجیتال
در تمام مدارهای الکترونیکی و کامپیوتری، تنها دو سطح منطقی مجاز برای نمایش وضعیت یک سیگنال به کار میرود. این سطوح منطقی با نامهای 0 منطقی یا 1 منطقی، HIGH یا True ،LOW یا False و ON یا OFF شناخته میشوند. اکثر سیستمهای منطقی از «منطق مثبت» استفاده میکنند که در این صورت، 0 منطقی نشاندهندهی ولتاژ صفر و 1 منطقی نشاندهندهی ولتاژ بالاتر مثل 5+ ولت در منطق TTL است.
نمایش مقدار دیجیتال
وضعیت اول | وضعیت دوم |
«0» منطقی | «1» منطقی |
LOW | HIGH |
FALSE | TRUE |
خروجی ولتاژ سطح پایین | خروجی ولتاژ سطح بالا |
0 ولت یا زمین | 5+ ولت |
عموماً برای جلوگیری از خطاهای احتمالی در مدارهای منطقی، کلیدزنی و تغییر سطح ولتاژ از 0 به 1 و یا از 1 به 0 با حداکثر سرعت ممکن انجام میگیرد. در استاندارد Transistor-Transistor-Logic) TTL) دامنهی ولتاژ ورودی و خروجی در IC های مورد استفاده محدودیت مشخصی دارد. همانگونه که در شکل زیر نشان داده شده است، اعمال این محدودیتها برای افزایش دقت در تعریف 0 و 1 منطقی است.
سطوح ولتاژ ورودی و خروجی TTL
در صورت استفاده از تغذیهی 5+ ولت، هر ولتاژ ورودی بین 2.0 ولت و 5 ولت به عنوان «1 منطقی» و هر ولتاژ ورودی کمتر از 0.8 ولت به عنوان «0 منطقی» شناخته میشود. همچنین اگر خروجی یک گیت منطقی بین 2.7 ولت و 5 ولت باشد، بیانگر 1 منطقی و ولتاژ خروجی کمتر از 0.4 ولت بیانگر مقدار 0 منطقی است. این مقادیر بیانگر «منطق مثبت» بوده و در این سلسله آموزشها از همین منطق استفاده میکنیم.
دستگاههای شمارهگذاری باینری به دلیل استفاده از تنها دو رقم (صفر و یک) برای نمایش اعداد مختلف، روش بسیار مناسبی برای نمایش سیگنالهای دیجیتال هستند. لذا در مدارهای کامپیوتری دیجیتال عمدتاً از اعداد باینری استفاده میشود.
در بخش بعدی از مجموعه آموزشهای مربوط به اعداد باینری، به بررسی نحوهی تبدیل اعداد دهدهی یا دسیمال (Decimal) به اعداد باینری و برعکس خواهیم پرداخت. همچنین به منظور نمایش اعداد باینری بسیار بزرگتر، با مفاهیم «بایت» (Byte) و «کلمه» (Word) آشنا خواهیم شد.
برای مطالعهی بخش دوم این مطلب میتوانید از این لینک استفاده کنید، ضمناً اگر مطالب بالا برای شما مفید بوده است، شاید از این آموزشها نیز استفاده ببرید.
معرفی اعداد باینری، تبدیل مبنا و جمع و تفریق
در هر زبان برنامه نویسی پایه ای باید درک صحیحی از اعداد باینری یا دیجیتال داشته باشید.
علت آن هم کاملا واضح است،
چون زبان قابل فهم پردازشگرها مجموعه ای از 0 و 1 ها بوده که به آنها اعداد باینری یا دودویی می گوییم.
با صرف فقط 1 ساعت، با دنیایی از اطلاعات در مورد اعداد باینری منفی، مثبت و اعشاری آشنا خواهید شد و
پس از این آموزش می توانید با زبان روز دنیا یعنی زبان باینری کار کرده و با پردازشگرهای مختلف سر و کله بزنید.
1# اعداد باینری
در واقع عددهای باینری، اعدادی هستند که در دنیای ریاضیات و الکترونیک دیجیتال در مبنای 2 بیان می شوند.
وقتی یک مبنای N برای اعداد تعریف میکنیم، به این معنی است که بازه های عددی در آن از 0 تا N-1 را شامل می شوند.
برای مثال مبنای ده (یا همین اعداد دهدهی که روزمره به کار میبریم) شامل ارقام 0 تا 9 است.
به بازه اعداد باینری، عدد دودویی نیز گفته می شود.
برای نمایش اعداد در مبنای دودویی همانطور که در مثال بالا گفته شد از یک رشته عدد 0 و 1 استفاده می شود.
در فیلم بالا با مفهوم 0 و 1 ها و اینکه این 0 و 1 ها در واقع ولتاژ های 0 ولت و 5 ولت هستند، آشنا شدیم.
انواع اعداد باینری را دیدیم و حالا می خواهیم که به طور کاملتر به تبدیل مبناها بپردازیم.
2# مفهوم بیت و بایت (bit & Byte)
به هر رقم در یک عدد باینری بیت (bit) گفته می شود.
برای مثال یک رشته عدد 001010، دارای 6 رقم یا 6 بیت است.
از آنجایی که در دنیای دیجیتال و کامپیوتر به صورت معمول هر رشته عدد شامل 8 بیت است، برای این دسته ها نامگذاری جداگانه ای صورت گرفته است.
به هر 8 بیت پشت سر هم یک بایت (Byte) گفته می شود.
نکته: توجه داشته باشید که برای استفاده از حروف اختصاری، بیت را با حرف “b” کوچک و هر بایت را با “B” بزرگ نمایش میدهند.
3# تبدیل مبنای 10 به 2
در اولین گام، بررسی می کنیم که چگونه یک عدد در مبنا 10 (دسیمال) را به یک مبنای دلخواه ببریم:
- در اولین مرحله، عدد مورد نظر مان را به 2 تقسیم می کنیم.
- سپس در هر مرحله بعدی، خارج قسمت را بر 2 تقسیم می کنیم
این روند به قدری ادامه پیدا می کند که خارج قسمت از 2 کمتر شود. - سپس آخرین خارج قسمت و باقی مانده های هر مرحله (از آخر به اول) را به ترتیب در کنار هم می نویسم.
- عدد بدست آمده، عدد مورد نظر ما در مبنای باینری است.
در ادامه برای مثال عدد باینری یا دودویی چیست؟ 41 را به عدد معادل باینری آن تبدیل می کنیم.
این روش کلی برای تبدیل یک عدد از مبنا 10 به مبنای دلخواهمان است و
می توان به جای عدد 2 هر مبنای دلخواه دیگری را قرار داد.
4# تبدیل عدد اعشاری به باینری
حالا اگر اعدادمان اعشاری بود، چه باید بکنیم؟
مثلا اگر عددمان 41/75 باشد
مبنای 2 آن را چگونه محاسبه می کنید؟
- قسمت صحیح عدد را به همان صورت قبلی به مبنای 2 می آوریم.
- برای قسمت اعشاری به جای تقسیم متوالی از ضرب های متوالی در عدد 2 استفاده میکنیم و
این روند را تا جایی پیش می بریم که عدد اعشاری مساوی 0 شود. - از اولین حاصل ضرب تا آخر بخش عدد صحیح جواب ها را به ترتیب پشت سر هم می نویسیم.
- عدد باینری حاصل از قسمت صحیح عدد را مشابه قبل نوشته و پس از قرار دادن یک نقطه (.) بخش اعشاری باینری رو مینویسیم.
در ادامه عدد 41/75 را به مبنای باینری می بریم.
- قسمت اعشاری ممکن است، هیچ موقع به صفر نرسد
(مثلا برای 0.32 این اتفاق رخ می دهد و هرگز به صفر نمی رسد)
5# تبدیل اعداد باینری مبنای 2 به 10
در مبنای باینری، اعداد دارای ارزش گذاری مخصوص به خود هستند به این صورت که
از سمت راست ترین رقم عدد صحیح، عدد nام، دارای ارزش 2 به توان n-1 است.
یعنی از سمت راست، رقم اول ارزش 2 به توان 0 (یعنی 1) دارد، عدد دوم ارزش 2، سومین رقم ارزش 4 و الی آخر.
برای تبدیل این عدد به مبنای دسیمال کافی است هر رقم را در ارزش خودش ضرب کرده و حاصل ضرب ها را با هم جمع کنیم.
یه سمت راستی ترین رقم اعداد باینری که دارای کمترین ارزش مقداری است LSB گفته می شود و
به سمت چپ ترین رقم که دارای بیشترین ارزش مقداری است MSB می گویند.
برای بخش اعشاری اعداد هم به همین روش پیش میرویم با این تفاوت که این بخش دارای ارزش های متفاوت است.
از سمت چپ ترین رقم، عدد nام دارای ارزش 2 به توان n- است.
برای مثال از سمت چپ به ترتیب دارای ارزش 2 به توان 1-، 2 به توان 2- و الی آخر خواهند بود.
6# روش سریع تبدیل مبنای اعداد
در این مرحله می خواهیم، میان بری برای تبدیل به مبنای دلخواهمان پیدا کنیم.
اگر به ارزش مکانی ارقام دقت کنید، می توانید تبدیل مبنا ها را سریع تر و دقیق تر انجام دهید.
حالا اگر بخواهیم عدد 41.75 را با توجه به ارزش های مکانی در سیستم دودویی بنویسیم،
یا به عبارت بهتر به اعداد باینری تبدیل کنیم.
به ارزش مکانی اعداد باینری یا دودویی باید توجه کنیم.
همان طور که در تصویر فوق مشاهده می کنید، ارزش مکانی سیستم دودویی برای شما نمایش داده شده است.
ابتدا خودتان سعی کنید که به روش میان بر، مقدار دودویی عدد 41.75 را بدست بیاورید
(قرار است که عدد 0 و 1 را طوری زیر ارزش های مکانی دودویی بگذاریم که مجموع آنها با توجه به ارزش شان، 41.75 شود!)
- نزدیک ترین عدد کوچکتر از 41، عدد 32 است(1)
- مشخصا، 32+16>41 می شود! (0)
- اما 40=32+8
- سپس 40+4>41 است (0)
- و 40+2>41 است و همان رقم 0 را برای ارزش مکانی 2 در نظر می گیریم (0)
- و در انتها 40+1=41 و تمام (1)
- ارقام فوق را به ترتیب وارد می کنیم
برای قسمت اعشاری هم داریم:
- 1/2>0.75 است (1)
- همچنین 1/2+1/4=0.75 است و برای این ارزش مکانی هم رقم 1 را در نظر می گیریم و تمام
خیلی ساده مشاهده کردید که رقم 41.75 را با سرعت بیشتری به سیستم دودویی تبدیل کردیم (101001.11)
دیدگاه شما