باینری چیست ؟
کامپیوتر شخصی شما، به این دلیل «دیجیتال» نامیده میشود که تمام اطلاعات داخل آن به شکل اعداد دستکاری و نمایش داده میشوند. معنای اصلی «digit» معادل «انگشت» است و از آنجایی که افراد اغلب از انگشتان خود برای شمارش استفاده میکنند، بهمرور کلمهی digit به اعداد نیز اطلاق شد. همهی اعداد موجود در یک صفحهی گسترده، همهی کاراکترهای متنی در یک فایل ورد، و همهی تصاویر و صداهای ذخیرهشده در یک کامپیوتر بهصورت اعداد باینری (Binary) ذخیره میشوند. در این مقاله بررسی خواهیم کرد که باینری چیست و چگونه از آن در علوم کامپیوتر استفاده میشود؟
از آنجایی که انسانها 1010 انگشت دارند، سیستم عددی که برای شمارش از آن استفاده میکنند، در مبنای 1010 است. بهعنوان مثال عدد 18531853 در مبنای 1010 به این صورت تولید میشود:
هر یک از ارقام 00 تا 99 در یک عدد در مبنای 1010، در ده به توان عددی که متناظر با ارزش مکانی آن است، ضرب میشود. توجه کنید که ارزش هر رقم 1010 برابر ارزش رقم سمت راست آن است.
باینری چیست؟
اما کامپیوترها که انگشتی برای انجام محاسبات ندارند چه کار باید بکنند؟ کامپیوترها بهجای انگشت از مدارهایی الکتریکی استفاده میکنند که فقط دو حالت برای کارکردن دارند؛ یا روشن هستند یا خاموش. بنابراین سیستم اعداد طبیعی مورداستفاده در یک کامپیوتر الکترونیکی در مبنای 22 است و به آن سیستم اعداد باینری یا دودویی گفته میشود. برخلاف شما که برای محاسبه از ده رقم استفاده میکنید (00، 11، 22، 33، 44، 55، 66، 77، 88، 99)، کامپیوترها فقط از دو رقم 00 و 11 برای انجام محاسبات و پردازش استفاده میکنند. در حافظهی یک کامپیوتر، یک ترانزیستورِ روشن (رسانای جریان) نشاندهندهی 11 و ترانزیستور خاموش، نشاندهندهی 00 است.
بهعنوان مثال عدد باینری 1110011110111100111101 اینگونه تفسیر میشود:
همان طور که میبینید 1110011110111100111101 در مبنای 1010 معادل عدد 18531853 در مبنای 22 است:
1853 (base10)=11100111101 (base2)
1853(base10)=11100111101(base2)
توجه داشته باشید که در سیستم باینری، ارزش هر عدد دو برابر ارزش رقم سمت راست آن است؛ زیرا این اعداد در مبنای 22 هستند. به خاطر بیاورید که ارزشگذاری ارقام در مبنای 1010 چگونه انجام میشد.
از آنجایی که استفاده از اصطلاح «رقم دودویی» سخت بود، اصطلاح کوتاهترِ بیت (bit) معرفی شد. هر بیت یک عدد باینری است و میتواند مقداری برابر با 11 یا 00 داشته باشد. رشتهای از بیتها، میتواند معرف اعداد بزرگتر باشد؛ همان طور که ما برای بیان اعداد بزرگتر از 99 از رشتههایی از اعداد در مبنای 1010 استفاده میکنیم.
کاربردیترین واحد اندازهگیری حافظهی کامپیوتری معادل 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×128)+(1×64)+(1×32)+(1×16)+(1×8)+(1×4)+(1×2)+(1×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) است و به همین منوال تا پایان ادامه مییابد.
در رابطه با الفبای زبانهای دیگر مثل زبان ژاپنی که حاوی حروف بسیار بیشتری نسبت به انگلیسی هستند، از تعمیم روش ASCII به نام یونیکد (Unicode) استفاده میشود که برای نمایش هر حرف از دو بایت استفاده میکند. به این ترتیب در روش یونیکد 6553565535 مقدار متفاوت برای نمایش کاراکترها وجود دارد.
تصاویر نیز در کامپیوتر بهصورت اعداد نمایش داده میشوند. اگر از فاصله نزدیک به صفحه نمایش خود نگاه کنید، میبینید که تصاویر روی صفحهنمایش از نقاط کوچک زیادی تشکیل شدهاند که بهطور خلاصه به آنها پیکسل گفته میشود. رنگ هر پیکسل در صفحهنمایش میتواند توسط سه بایت در کامپیوتر تعریف شود. اعداد موجود در بایتها به نمایشگر میگویند که چه مقدار نور قرمز، آبی و سبز باید با هم مخلوط شوند تا رنگ پیکسل ایجاد شود.
برنامههایی که در کامپیوترها اجرا میشوند نیز بهصورت اعداد ذخیره شده و توسط کدهای باینری منحصربهفرد نمایش داده میشوند. در این مورد، هر عدد نشاندهندهی دستورالعملی برای ریزپردازنده است.
کیلوبایت، مگابایت، گیگابایت و…
ظرفیت حافظه و حجم دادههای ذخیرهشده در کامپیوترها بر حسب بایت (88 بیت) محاسبه میشوند. با این حال، یک بایت واحد حافظهی کوچکی است که فقط میتواند یک کاراکتر را در خود جای دهد. بنابراین از واحدهای حافظهی بزرگتر استفاده میکنیم:
یک کیلوبایت (KB) تقریباً معادل 10001000 بایت و دقیقاً معادل 10241024 بایت است. اما چرا عدد عجیبی مثل 10241024؟ زیرا 10241024 دقیقاً معادل 1000000000010000000000 در سیستم باینری است. یک مضرب مناسب از دو برای استفاده در کامپیوتر بسیار کاربردی است. بنابراین وقتی کامپیوتر به شما میگوید که فایل شما 4040 کیلوبایت فضا اشغال کرده است، در واقع آن فایل 4096040960 بایت فضا اشغال کرده است نه 4000040000 بایت. دلیل این نامگذاری این است که یک کیلوبایت را میتوان تقریباً معادل 10001000 بایت در نظر گرفت.
به همین صورت، شما میتوانید یک مگابایت (MB) را تقریباً معادل یک میلیون بایت و دقیقاً معادل 10485761048576 بایت (1024×10241024×1024) در نظر بگیرید. یک گیگابایت (GB) نیز تقریباً معادل یک میلیارد بایت و دقیقاً معادل 10737418241073741824 بایت است.
از آنجایی که انسانها 1010 انگشت دارند، سیستم عددی که برای شمارش از آن استفاده میکنند، در مبنای 1010 است. بهعنوان مثال عدد 18531853 در مبنای 1010 به این صورت تولید میشود:
هر یک از ارقام 00 تا 99 در یک عدد در مبنای 1010، در ده به توان عددی که متناظر با ارزش مکانی آن است، ضرب میشود. توجه کنید که ارزش هر رقم 1010 برابر ارزش رقم سمت راست آن است.
باینری چیست؟
اما کامپیوترها که انگشتی برای انجام محاسبات ندارند چه کار باید بکنند؟ کامپیوترها بهجای انگشت از مدارهایی الکتریکی استفاده میکنند که فقط دو حالت برای کارکردن دارند؛ یا روشن هستند یا خاموش. بنابراین سیستم اعداد طبیعی مورداستفاده در یک کامپیوتر الکترونیکی در مبنای 22 است و به آن سیستم اعداد باینری یا دودویی گفته میشود. برخلاف شما که برای محاسبه از ده رقم استفاده میکنید (00، 11، 22، 33، 44، 55، 66، 77، 88، 99)، کامپیوترها فقط از دو رقم 00 و 11 برای انجام محاسبات و پردازش استفاده میکنند. در حافظهی یک کامپیوتر، یک ترانزیستورِ روشن (رسانای جریان) نشاندهندهی 11 و ترانزیستور خاموش، نشاندهندهی 00 است.
بهعنوان مثال عدد باینری 1110011110111100111101 اینگونه تفسیر میشود:
همان طور که میبینید 1110011110111100111101 در مبنای 1010 معادل عدد 18531853 در مبنای 22 است:
1853 (base10)=11100111101 (base2)
1853(base10)=11100111101(base2)
توجه داشته باشید که در سیستم باینری، ارزش هر عدد دو برابر ارزش رقم سمت راست آن است؛ زیرا این اعداد در مبنای 22 هستند. به خاطر بیاورید که ارزشگذاری ارقام در مبنای 1010 چگونه انجام میشد.
از آنجایی که استفاده از اصطلاح «رقم دودویی» سخت بود، اصطلاح کوتاهترِ بیت (bit) معرفی شد. هر بیت یک عدد باینری است و میتواند مقداری برابر با 11 یا 00 داشته باشد. رشتهای از بیتها، میتواند معرف اعداد بزرگتر باشد؛ همان طور که ما برای بیان اعداد بزرگتر از 99 از رشتههایی از اعداد در مبنای 1010 استفاده میکنیم.
کاربردیترین واحد اندازهگیری حافظهی کامپیوتری معادل 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×128)+(1×64)+(1×32)+(1×16)+(1×8)+(1×4)+(1×2)+(1×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) است و به همین منوال تا پایان ادامه مییابد.
در رابطه با الفبای زبانهای دیگر مثل زبان ژاپنی که حاوی حروف بسیار بیشتری نسبت به انگلیسی هستند، از تعمیم روش ASCII به نام یونیکد (Unicode) استفاده میشود که برای نمایش هر حرف از دو بایت استفاده میکند. به این ترتیب در روش یونیکد 6553565535 مقدار متفاوت برای نمایش کاراکترها وجود دارد.
تصاویر نیز در کامپیوتر بهصورت اعداد نمایش داده میشوند. اگر از فاصله نزدیک به صفحه نمایش خود نگاه کنید، میبینید که تصاویر روی صفحهنمایش از نقاط کوچک زیادی تشکیل شدهاند که بهطور خلاصه به آنها پیکسل گفته میشود. رنگ هر پیکسل در صفحهنمایش میتواند توسط سه بایت در کامپیوتر تعریف شود. اعداد موجود در بایتها به نمایشگر میگویند که چه مقدار نور قرمز، آبی و سبز باید با هم مخلوط شوند تا رنگ پیکسل ایجاد شود.
برنامههایی که در کامپیوترها اجرا میشوند نیز بهصورت اعداد ذخیره شده و توسط کدهای باینری منحصربهفرد نمایش داده میشوند. در این مورد، هر عدد نشاندهندهی دستورالعملی برای ریزپردازنده است.
کیلوبایت، مگابایت، گیگابایت و…
ظرفیت حافظه و حجم دادههای ذخیرهشده در کامپیوترها بر حسب بایت (88 بیت) محاسبه میشوند. با این حال، یک بایت واحد حافظهی کوچکی است که فقط میتواند یک کاراکتر را در خود جای دهد. بنابراین از واحدهای حافظهی بزرگتر استفاده میکنیم:
یک کیلوبایت (KB) تقریباً معادل 10001000 بایت و دقیقاً معادل 10241024 بایت است. اما چرا عدد عجیبی مثل 10241024؟ زیرا 10241024 دقیقاً معادل 1000000000010000000000 در سیستم باینری است. یک مضرب مناسب از دو برای استفاده در کامپیوتر بسیار کاربردی است. بنابراین وقتی کامپیوتر به شما میگوید که فایل شما 4040 کیلوبایت فضا اشغال کرده است، در واقع آن فایل 4096040960 بایت فضا اشغال کرده است نه 4000040000 بایت. دلیل این نامگذاری این است که یک کیلوبایت را میتوان تقریباً معادل 10001000 بایت در نظر گرفت.
به همین صورت، شما میتوانید یک مگابایت (MB) را تقریباً معادل یک میلیون بایت و دقیقاً معادل 10485761048576 بایت (1024×10241024×1024) در نظر بگیرید. یک گیگابایت (GB) نیز تقریباً معادل یک میلیارد بایت و دقیقاً معادل 10737418241073741824 بایت است.
نظرات (0)