باینری چیست و چگونه از آن در علوم کامپیوتر استفاده میشود؟
۱۰ آذر ۱۴۰۱
زمان مطالعه: 5دقیقه
13739
کامپیوتر شخصی شما، به این دلیل «دیجیتال» نامیده میشود که تمام اطلاعات داخل آن به شکل اعداد دستکاری و نمایش داده میشوند. معنای اصلی «digit» معادل «انگشت» است و از آنجایی که افراد اغلب از انگشتان خود برای شمارش استفاده میکنند، بهمرور کلمهی digit به اعداد نیز اطلاق شد. همهی اعداد موجود در یک صفحهی گسترده، همهی کاراکترهای متنی در یک فایل ورد، و همهی تصاویر و صداهای ذخیرهشده در یک کامپیوتر بهصورت اعداد باینری (Binary) ذخیره میشوند. در این مقاله بررسی خواهیم کرد که باینری چیست و چگونه از آن در علوم کامپیوتر استفاده میشود؟
از آنجایی که انسانها 10 انگشت دارند، سیستم عددی که برای شمارش از آن استفاده میکنند، در مبنای 10 است. بهعنوان مثال عدد 1853 در مبنای 10 به این صورت تولید میشود:
هر یک از ارقام 0 تا 9 در یک عدد در مبنای 10، در ده به توان عددی که متناظر با ارزش مکانی آن است، ضرب میشود. توجه کنید که ارزش هر رقم 10 برابر ارزش رقم سمت راست آن است.
اما کامپیوترها که انگشتی برای انجام محاسبات ندارند چه کار باید بکنند؟ کامپیوترها بهجای انگشت از مدارهایی الکتریکی استفاده میکنند که فقط دو حالت برای کارکردن دارند؛ یا روشن هستند یا خاموش. بنابراین سیستم اعداد طبیعی مورداستفاده در یک کامپیوتر الکترونیکی در مبنای 2 است و به آن سیستم اعداد باینری یا دودویی گفته میشود. برخلاف شما که برای محاسبه از ده رقم استفاده میکنید (0، 1، 2، 3، 4، 5، 6، 7، 8، 9)، کامپیوترها فقط از دو رقم 0 و 1 برای انجام محاسبات و پردازش استفاده میکنند. در حافظهی یک کامپیوتر، یک ترانزیستورِ روشن (رسانای جریان) نشاندهندهی 1 و ترانزیستور خاموش، نشاندهندهی 0 است.
بهعنوان مثال عدد باینری 11100111101 اینگونه تفسیر میشود:
همان طور که میبینید 11100111101 در مبنای 10 معادل عدد 1853 در مبنای 2 است:
1853 \: (base 10) = 11100111101 \: (base 2)
توجه داشته باشید که در سیستم باینری، ارزش هر عدد دو برابر ارزش رقم سمت راست آن است؛ زیرا این اعداد در مبنای 2 هستند. به خاطر بیاورید که ارزشگذاری ارقام در مبنای 10 چگونه انجام میشد.
از آنجایی که استفاده از اصطلاح «رقم دودویی» سخت بود، اصطلاح کوتاهترِ بیت (bit) معرفی شد. هر بیت یک عدد باینری است و میتواند مقداری برابر با 1 یا 0 داشته باشد. رشتهای از بیتها، میتواند معرف اعداد بزرگتر باشد؛ همان طور که ما برای بیان اعداد بزرگتر از 9 از رشتههایی از اعداد در مبنای 10 استفاده میکنیم.
کاربردیترین واحد اندازهگیری حافظهی کامپیوتری معادل 8 بیت است. از این تعداد بیت از حافظه میتوان برای نمایش هر عددی از بازه صفر (00000000) تا 255 (11111111) استفاده کرد. 11111111 در مبنای 2 برابر با 255 در مبنای 10 است:
همچنین به یک واحد حافظه به طول 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) است و به همین منوال تا پایان ادامه مییابد.
در رابطه با الفبای زبانهای دیگر مثل زبان ژاپنی که حاوی حروف بسیار بیشتری نسبت به انگلیسی هستند، از تعمیم روش ASCII به نام یونیکد (Unicode) استفاده میشود که برای نمایش هر حرف از دو بایت استفاده میکند. به این ترتیب در روش یونیکد 65535 مقدار متفاوت برای نمایش کاراکترها وجود دارد.
تصاویر نیز در کامپیوتر بهصورت اعداد نمایش داده میشوند. اگر از فاصله نزدیک به صفحه نمایش خود نگاه کنید، میبینید که تصاویر روی صفحهنمایش از نقاط کوچک زیادی تشکیل شدهاند که بهطور خلاصه به آنها پیکسل گفته میشود. رنگ هر پیکسل در صفحهنمایش میتواند توسط سه بایت در کامپیوتر تعریف شود. اعداد موجود در بایتها به نمایشگر میگویند که چه مقدار نور قرمز، آبی و سبز باید با هم مخلوط شوند تا رنگ پیکسل ایجاد شود.
برنامههایی که در کامپیوترها اجرا میشوند نیز بهصورت اعداد ذخیره شده و توسط کدهای باینری منحصربهفرد نمایش داده میشوند. در این مورد، هر عدد نشاندهندهی دستورالعملی برای ریزپردازنده است.
کیلوبایت، مگابایت، گیگابایت و…
ظرفیت حافظه و حجم دادههای ذخیرهشده در کامپیوترها بر حسب بایت (8 بیت) محاسبه میشوند. با این حال، یک بایت واحد حافظهی کوچکی است که فقط میتواند یک کاراکتر را در خود جای دهد. بنابراین از واحدهای حافظهی بزرگتر استفاده میکنیم:
یک کیلوبایت (KB) تقریباً معادل 1000 بایت و دقیقاً معادل 1024 بایت است. اما چرا عدد عجیبی مثل 1024؟ زیرا 1024 دقیقاً معادل 10000000000 در سیستم باینری است. یک مضرب مناسب از دو برای استفاده در کامپیوتر بسیار کاربردی است. بنابراین وقتی کامپیوتر به شما میگوید که فایل شما 40 کیلوبایت فضا اشغال کرده است، در واقع آن فایل 40960 بایت فضا اشغال کرده است نه 40000 بایت. دلیل این نامگذاری این است که یک کیلوبایت را میتوان تقریباً معادل 1000 بایت در نظر گرفت.
به همین صورت، شما میتوانید یک مگابایت (MB) را تقریباً معادل یک میلیون بایت و دقیقاً معادل 1048576 بایت (1024\times 1024) در نظر بگیرید. یک گیگابایت (GB) نیز تقریباً معادل یک میلیارد بایت و دقیقاً معادل 1073741824 بایت است.
ممنون خیلی متن خوبی بود ( زیاد تخصصی نمیگم چون بلد نیستم! ) ممنونم که با این متن ها ما رو سرگرم کردید و به ما آموختید و راز های پنهان برخی چیز ها رو بهمون نشون دادید!
اگر قلو گردم ببخشید دست خودم نبود🙂
حمید
9 ماه قبل
درود و سپاس از توضیحات ساده و ارزشمند شما.
Sajad
9 ماه قبل
مرسی خیلی خوب توضیح دادین
امید اخلاصی
4 ماه قبل
عالی
مهیار
3 ماه قبل
سلام و درود فراوان به اساتید و سایت کوئرا کالج
مطلب فوق العاده و گیرا بود اما سوال برام پیش اومد که اگه هر بایت 8 بیته پس چرا شمما برای توضیح کیلو بایت از 11 رقم استفاده کردید؟
ممنون از شما