باینری چیست و چگونه از آن در علوم کامپیوتر استفاده می‌شود؟

17030
باینری چیست؟

کامپیوتر شخصی شما، به این دلیل «دیجیتال» نامیده می‌شود که تمام اطلاعات داخل آن به شکل اعداد دستکاری و نمایش داده می‌شوند. معنای اصلی «digit» معادل «انگشت» است و از آنجایی که افراد اغلب از انگشتان خود برای شمارش استفاده می‌کنند، به‌مرور کلمه‌ی digit به اعداد نیز اطلاق شد. همه‌ی اعداد موجود در یک صفحه‌ی گسترده، همه‌ی کاراکترهای متنی در یک فایل ورد، و همه‌ی تصاویر و صداهای ذخیره‌شده در یک کامپیوتر به‌صورت اعداد باینری (Binary) ذخیره می‌شوند. در این مقاله بررسی خواهیم کرد که باینری چیست و چگونه از آن در علوم کامپیوتر استفاده می‌شود؟

از آنجایی که انسان‌ها 1010 انگشت دارند، سیستم عددی که برای شمارش از آن استفاده می‌کنند، در مبنای 1010 است. به‌عنوان مثال عدد 18531853 در مبنای 1010 به این صورت تولید می‌شود:

باینری چیست | binary چیست

هر یک از ارقام 00 تا 99 در یک عدد در مبنای 1010، در ده به توان عددی که متناظر با ارزش مکانی آن است، ضرب می‌شود. توجه کنید که ارزش هر رقم 1010 برابر ارزش رقم سمت راست آن است.

بیشتر بخوانید: تبدیل مبنا؛ چطور مبناها را به یکدیگر تبدیل کنیم؟

باینری چیست؟

اما کامپیوترها که انگشتی برای انجام محاسبات ندارند چه کار باید بکنند؟ کامپیوترها به‌جای انگشت از مدارهایی الکتریکی استفاده می‌کنند که فقط دو حالت برای کارکردن دارند؛ یا روشن هستند یا خاموش. بنابراین سیستم اعداد طبیعی مورداستفاده در یک کامپیوتر الکترونیکی در مبنای 22 است و به آن سیستم اعداد باینری یا دودویی گفته می‌شود. برخلاف شما که برای محاسبه از ده رقم استفاده می‌کنید (00، 11، 22، 33، 44، 55، 66، 77، 88، 99)، کامپیوترها فقط از دو رقم 00 و 11 برای انجام محاسبات و پردازش استفاده می‌کنند. در حافظه‌ی یک کامپیوتر، یک ترانزیستورِ روشن (رسانای جریان) نشان‌دهنده‌ی 11 و ترانزیستور خاموش، نشان‌دهنده‌ی 00 است.

به‌عنوان مثال عدد باینری 1110011110111100111101 این‌گونه تفسیر می‌شود:

باینری چیست | binary چیست

همان طور که می‌بینید 1110011110111100111101 در مبنای 1010 معادل عدد 18531853 در مبنای 22 است:

1853(base10)=11100111101(base2)1853 \: (base 10) = 11100111101 \: (base 2)

توجه داشته باشید که در سیستم باینری، ارزش هر عدد دو برابر ارزش رقم سمت راست آن است؛ زیرا این اعداد در مبنای 22 هستند. به خاطر بیاورید که ارزش‌گذاری ارقام در مبنای 1010 چگونه انجام می‌شد.

از آنجایی که استفاده از اصطلاح «رقم دودویی» سخت بود، اصطلاح کوتاه‌ترِ بیت (bit) معرفی شد. هر بیت یک عدد باینری است و می‌تواند مقداری برابر با 11 یا 00 داشته باشد. رشته‌ای از بیت‌ها، می‌تواند معرف اعداد بزرگتر باشد؛ همان طور که ما برای بیان اعداد بزرگتر از 99 از رشته‌هایی از اعداد در مبنای 1010 استفاده می‌کنیم.

باینری چیست | binary چیست
نمایش باینری اعداد

کاربردی‌ترین واحد اندازه‌گیری حافظه‌ی کامپیوتری معادل 88 بیت است. از این تعداد بیت از حافظه می‌توان برای نمایش هر عددی از بازه صفر (0000000000000000) تا 255255 (1111111111111111) استفاده کرد. 1111111111111111 در مبنای 22 برابر با 255255 در مبنای 1010 است:

(1×128)+(1×64)+(1×32)+(1×16)+(1×8)+(1×4)+(1×2)+(1×1)=255(1\times 128) + (1\times 64) + (1\times 32) + (1\times 16) + (1\times 8) + (1\times 4) + (1\times 2) + (1\times 1) = 255

همچنین به یک واحد حافظه به طول 88 بیت، بایت (byte) گفته می‌شود. یک بایت، واحدی است که برای محاسبه‌ی میزان حافظه‌ی کامپیوترها استفاده می‌کنیم. واحدی از حافظه با طول 44 بیت نیبل (nybble) نامیده می‌شود که چندان کاربردی نیست. اما چرا 88 بیت کاربردی‌ترین طول حافظه محسوب می‌شود؟ زیرا برای نمایش تمام کاراکترهای الفبای انگلیسی، واحد حافظه‌ی 88 بیتی، اولین عددی در توان 22 است که به شما امکان کافی برای انجام این کار می‌دهد.

حالا سؤالی که پیش می‌آید این است که کاراکترهای متنی چگونه در حافظه‌ی کامپیوتر به‌صورت اعداد نمایش داده می‌شوند؟ برای این کار نیازمند روشی برای معادل‌سازی حروف به اعداد هستیم. سیستم مورداستفاده برای این کار کدگذاری اَسکی (ASCII یا American Standard Code for Information Interchange) است. حرف AA بزرگ با عدد 6565 در کد اسکی نمایش داده می‌شود (6565 در سیستم باینری معادل 0100000101000001 است). 6565 کدِ اولِ اسکی (00 تا 6464) برای مجموعه‌ای از کاراکترهای کنترلی و کاراکترهای خاص استفاده می‌شوند، بنابراین حرف AA بزرگ معادل 6565امین کاراکتر اسکی است. حرف BB بزرگ معادل 6666 (0100001001000010) است و به همین منوال تا پایان ادامه می‌یابد.

باینری چیست | binary چیست
نمایش ASCII کاراکترها

در رابطه با الفبای زبان‌های دیگر مثل زبان ژاپنی که حاوی حروف بسیار بیشتری نسبت به انگلیسی هستند، از تعمیم روش ASCII به نام یونیکد (Unicode) استفاده می‌شود که برای نمایش هر حرف از دو بایت استفاده می‌کند. به این ترتیب در روش یونیکد 6553565535 مقدار متفاوت برای نمایش کاراکترها وجود دارد.

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

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

کیلوبایت، مگابایت، گیگابایت و…

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

یک کیلوبایت (KB) تقریباً معادل 10001000 بایت و دقیقاً معادل 10241024 بایت است. اما چرا عدد عجیبی مثل 10241024؟ زیرا 10241024 دقیقاً معادل 1000000000010000000000 در سیستم باینری است. یک مضرب مناسب از دو برای استفاده در کامپیوتر بسیار کاربردی است. بنابراین وقتی کامپیوتر به شما می‌گوید که فایل شما 4040 کیلوبایت فضا اشغال کرده است، در واقع آن فایل 4096040960 بایت فضا اشغال کرده است نه 4000040000 بایت. دلیل این نام‌گذاری این است که یک کیلوبایت را می‌توان تقریباً معادل 10001000 بایت در نظر گرفت.

به همین صورت، شما می‌توانید یک مگابایت (MB) را تقریباً معادل یک میلیون بایت و دقیقاً معادل 10485761048576 بایت (1024×10241024\times 1024) در نظر بگیرید. یک گیگابایت (GB) نیز تقریباً معادل یک میلیارد بایت و دقیقاً معادل 10737418241073741824 بایت است.

اگر هنوز مطمئن نیستید که یادگیری برنامه‌نویسی برایتان مناسب است یا نه، یا نمی‌دانید از کجا شروع کنید، ما یک کوییز ساده و جذاب آماده کرده‌ایم که می‌تواند به شما کمک کند مسیر درست را پیدا کنید.
همین حالا امتحان کنید: برنامه نویسی را از کجا شروع کنیم


ممکن است علاقه‌مند باشید: برنامه نویسی چیست؟، تاریخچه برنامه‌نویسی

بیشتر بخوانید: کلاینت چیست؟ با انواع کلاینت، مزایا و معایب آن‌ها آشنا شوید

آموزش برنامه نویسی با کوئرا کالج
کوئرا بلاگ

اشتراک در
اطلاع از
guest


5 دیدگاه‌
قدیمی‌ترین
تازه‌ترین بیشترین واکنش
بازخورد (Feedback) های اینلاین
View all comments
Best Supreme
Best Supreme
1 سال قبل

ممنون خیلی متن خوبی بود ( زیاد تخصصی نمی‌گم چون بلد نیستم! ) ممنونم که با این متن ها ما رو سرگرم کردید و به ما آموختید و راز های پنهان برخی چیز ها رو بهمون نشون دادید!
اگر قلو گردم ببخشید دست خودم نبود🙂

حمید
حمید
1 سال قبل

درود و سپاس از توضیحات ساده و ارزشمند شما.

Sajad
Sajad
1 سال قبل

مرسی خیلی خوب توضیح دادین

امید اخلاصی
امید اخلاصی
9 ماه قبل

عالی

مهیار
مهیار
8 ماه قبل

سلام و درود فراوان به اساتید و سایت کوئرا کالج
مطلب فوق العاده و گیرا بود اما سوال برام پیش اومد که اگه هر بایت 8 بیته پس چرا شمما برای توضیح کیلو بایت از 11 رقم استفاده کردید؟
ممنون از شما