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

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

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

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

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

هر یک از ارقام 0 تا 9 در یک عدد در مبنای 10، در ده به توان عددی که متناظر با ارزش مکانی آن است، ضرب می‌شود. توجه کنید که ارزش هر رقم 10 برابر ارزش رقم سمت راست آن است.

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

باینری چیست؟

اما کامپیوترها که انگشتی برای انجام محاسبات ندارند چه کار باید بکنند؟ کامپیوترها به‌جای انگشت از مدارهایی الکتریکی استفاده می‌کنند که فقط دو حالت برای کارکردن دارند؛ یا روشن هستند یا خاموش. بنابراین سیستم اعداد طبیعی مورداستفاده در یک کامپیوتر الکترونیکی در مبنای 2 است و به آن سیستم اعداد باینری یا دودویی گفته می‌شود. برخلاف شما که برای محاسبه از ده رقم استفاده می‌کنید (0، 1، 2، 3، 4، 5، 6، 7، 8، 9)، کامپیوترها فقط از دو رقم 0 و 1 برای انجام محاسبات و پردازش استفاده می‌کنند. در حافظه‌ی یک کامپیوتر، یک ترانزیستورِ روشن (رسانای جریان) نشان‌دهنده‌ی 1 و ترانزیستور خاموش، نشان‌دهنده‌ی 0 است.

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

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

همان طور که می‌بینید 11100111101 در مبنای 10 معادل عدد 1853 در مبنای 2 است:

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

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

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

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

کاربردی‌ترین واحد اندازه‌گیری حافظه‌ی کامپیوتری معادل 8 بیت است. از این تعداد بیت از حافظه می‌توان برای نمایش هر عددی از بازه صفر (00000000) تا 255 (11111111) استفاده کرد. 11111111 در مبنای 2 برابر با 255 در مبنای 10 است:

(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

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

حالا سؤالی که پیش می‌آید این است که کاراکترهای متنی چگونه در حافظه‌ی کامپیوتر به‌صورت اعداد نمایش داده می‌شوند؟ برای این کار نیازمند روشی برای معادل‌سازی حروف به اعداد هستیم. سیستم مورداستفاده برای این کار کدگذاری اَسکی (ASCII یا American Standard Code for Information Interchange) است. حرف A بزرگ با عدد 65 در کد اسکی نمایش داده می‌شود (65 در سیستم باینری معادل 01000001 است). 65 کدِ اولِ اسکی (0 تا 64) برای مجموعه‌ای از کاراکترهای کنترلی و کاراکترهای خاص استفاده می‌شوند، بنابراین حرف A بزرگ معادل 65امین کاراکتر اسکی است. حرف B بزرگ معادل 66 (01000010) است و به همین منوال تا پایان ادامه می‌یابد.

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

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

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

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

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

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

یک کیلوبایت (KB) تقریباً معادل 1000 بایت و دقیقاً معادل 1024 بایت است. اما چرا عدد عجیبی مثل 1024؟ زیرا 1024 دقیقاً معادل 10000000000 در سیستم باینری است. یک مضرب مناسب از دو برای استفاده در کامپیوتر بسیار کاربردی است. بنابراین وقتی کامپیوتر به شما می‌گوید که فایل شما 40 کیلوبایت فضا اشغال کرده است، در واقع آن فایل 40960 بایت فضا اشغال کرده است نه 40000 بایت. دلیل این نام‌گذاری این است که یک کیلوبایت را می‌توان تقریباً معادل 1000 بایت در نظر گرفت.

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


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

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

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

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

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

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

حمید
حمید
10 ماه قبل

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

Sajad
Sajad
10 ماه قبل

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

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

عالی

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

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