چرا Binary؟ چرا کامپیوتر با Decimal کار نمیکند؟ آموزش و یادگیری چرا Binary؟ چرا کامپیوتر با Decimal کار نمیکند؟ به صورت رایگان
درک دلیل استفاده از سیستم دودویی
سلام!
توی دو تِرِد قبلی فهمیدیم که کامپیوتر در پایینترین سطحش با ۰ و ۱ کار میکنه و با Bit و Byte هم آشنا شدیم.
اما یه سؤال مهم هنوز باقی مونده:
چرا اصلاً باید ۰ و ۱ داشته باشیم؟
چرا کامپیوتر با عددهای ۰ تا ۹ کار نمیکنه؟
مثلاً چرا به جای:
از:
استفاده نکنیم؟
مگه برای ما آدمها Decimal خیلی راحتتر نیست؟
خب میدونی چیه آخه؟! جوابش به سختافزار برمیگرده واسه همین بریم ببینیم قضیه چیه!!!
بیایم خیلی ساده به ماجرا نگاه کنیم
فرض کن میخوای یک وسیله الکترونیکی بسازی که باید تشخیص بده:
«الان این سیگنال روشنه یا خاموش؟»
اگر فقط دو حالت داشته باشیم، کار خیلی سادهست:
High → 1
حالا تصور کن بخوایم به جای دو حالت، ۱۰ حالت مختلف داشته باشیم:
حالا سختافزار باید بتونه بین این ۱۰ حالت مختلف بهصورت قابلاعتماد تفاوت بذاره.
این کار شدنیه.
ولی… خیلی سختتره.
چرا دو حالت بهتره؟
چون در دنیای واقعی، سیگنالها همیشه کاملاً تمیز و دقیق نیستن.
ممکنه به خاطر نویز، تغییر دما، تغییر ولتاژ و عوامل دیگه، مقدار واقعی یک سیگنال کمی تغییر کنه.
مثلاً فرض کن یک سیستم داشته باشیم که:
5V → 1
اگر مقدار واقعی سیگنال کمی تغییر کنه، مثلاً از 5V به 4.8V برسه، هنوز میتونیم خیلی راحت بگیم:
این 1 هست.
حالا اگر بخوایم ۱۰ مقدار مختلف رو بین 0V تا 5V جا بدیم، فاصله بین حالتها خیلی کمتر میشه.
در نتیجه یک تغییر کوچک در سیگنال میتونه باعث بشه سختافزار یک حالت رو با حالت دیگه اشتباه بگیره.
اینجاست که ترانزیستور وارد داستان میشه
(واو چه اسم قلمبه سلمبه ای ولی خب فعلاً کاری بهش نداشته باش فقط بخونش)
ترانزیستورها یکی از مهمترین قطعات سختافزار دیجیتال هستن.
در مدارهای دیجیتال، میتونیم از رفتار ترانزیستورها برای ساختن چیزهایی استفاده کنیم که بهصورت ساده شبیه یک کلید الکترونیکی رفتار میکنن.
یعنی:
ON → 1
و وقتی تعداد زیادی از همین قطعات رو کنار هم میذاریم، میتونیم مدارهای منطقی بسازیم.
پس ماجرا فقط این نیست که:
«چون کامپیوتر عشقش میکشه از دودویی استفاده میکنیم نه گل من اینم بالاخره مخلوق اشرف مخلوقات یعنی خود جنابعالی هستش!»
بلکه معماری سختافزار دیجیتال به شکلی طراحی شده که استفاده از دو وضعیت منطقی بسیار مناسب و قابل اعتماده.
پس Decimal بد نیست؟
اصلاً! هر کی گفت بده مسئولیتت تا زمانی که نزدیش با منه!(شوخی میکنم نری بزنیشششششش!!!!)
Decimal برای انسانها خیلی محشره.
ما از بچگی با ۱۰ رقم کار کردیم:
ولی کامپیوتر بنده خدا لازم نیست مثل ما فکر کنه.
برای کامپیوتر مهمتر از اینکه کدوم نمایش برای انسان راحتتره، دنبال اینه که کدوم نمایش رو میشه با سختافزار سادهتر، سریعتر و مطمئنتر پیاده کرد.
و اینجا Binary انتخاب فوقالعادهایه.
یک نکته جالب
کامپیوتر در واقع مجبور نیست فقط دو سطح ولتاژ داشته باشه.
سیستمهایی با منطق چند مقداره هم وجود دارن و در بعضی کاربردها از آنها استفاده شده یا میشه.
اما در رایانههای دیجیتال عمومی امروزی، منطق دودویی به دلیل سادگی و قابلیت اطمینان بالای پیادهسازی، انتخاب غالب شده.
یعنی:
و حالا یک نکته خیلی مهم:
تا اینجا فقط فهمیدیم چرا Binary مهمه.
ولی هنوز یاد نگرفتیم که:
اصلاً Binary رو چطور بخونیم؟
مثلاً:
این یعنی چی؟
چطور بفهمیم برابر با چه عددی در Decimal میشه؟
یا برعکس، اگر عدد 45 داشته باشیم، چطور تبدیلش کنیم به Binary؟
اینجاست که از Thread بعد وارد سیستمهای عددی و تبدیل مبناها میشیم.
و از اینجا دیگه واقعاً با عدد ها کار داریم. 😉
با این داداشت همراه باش!!