سیستم های دیجیتال اطلاعات را بر مبنای 0 و 1 ارائه و پردازش میکنند.
در رایانه قطع و وصل بودن با تعیین سطح ولتاژ مشخص میشود. در وسایل الکترونیکی، ترانزیستور کار کلید را با سرعت خیلی بالا انجام می دهد. مدارهای مجتمع و تراشه ها از تعداد زیادی ترانزیستور استفاده میکنند. برای نمونه CPU مدل i7 Core حدود دو میلیارد ترانزیستور دارد.
صفر و یک، نمادهای سیستم شمارش دودویی هستند. در سیستم دودویی همه اعداد و حروف را میتوان به صورت تعدادی از صفر و یک های پشت سر هم نمایش داد. اساس محاسبات و پردازش ها، در سیستم های رایانه ای نیز بر مبنای سیستم دودویی است.
سیستم اعداد
برای مثال عدد 235 را میخوانیم دویست و سیوپنج. به دلیل وجود دسته های ده تایی از اعداد است.
سیستم شمارش بالا را سیستم دهدهی (Decimal) می نامند. ما برای شمارش های متداول در زندگی روزمره، از سیستم دهدهی استفاده میکنیم که شامل ده رقم 0 تا 9 است.
سیستم های عداد بر اساس شمارش مبناهای متفاوت دسته بندی میشوند. در سیستم دودویی مبنای 2 و در سیستم دهدهی مبنای 10 و در سیستم شانزده تایی مبنای 16 اساس شمارش است. هر سیستم عددنویسی، شامل یک عدد پایه یا مبنا و مجموعه ای از ارقام است که به تعداد عدد مبنا عضو دارد. در سیستم عددنویسی دهدهی مبنا عدد 10 است و ارقام آن مجموعه { 9 و 8 و 7 و 6 و 5 و 4 و 3 و 2 و 1 و 0 } است؛ یعنی در سیستم عددنویسی دهدهی ارقام اعداد نمیتوانند خارج از مجموعه یادشده باشند و هر عددی در این سیستم از کنار هم قرار گرفتن این ارقام ایجاد میشود. برای نمونه 2578 شامل ارقام 2 ،5 ،7 و 8 است.
سیستم عددنویسی مبنای x ، از یک مجموعه x تایی تشکیل شده است و اعضای مجموعه از صفر تا x-1 است.
برای تشخیص اعداد در مبناهای مختلف، ارقام را داخل پرانتز نوشته و مبنا را خارج از پرانتز به صورت اندیس مینویسیم مانند ₂(1101)
اگر عددی را بدون تعیین مبنا بنویسیم، در مبنای 10 خواهد بود؛ مانند 234.
عدد ₂(1101 )به صورت «یک یک صفر یک» در مبنای دو خوانده میشود. عدد ₁₀(1101) به صورت هزار و
صد و یک خوانده میشود.
ارزش مطلق و ارزش مکانی
در سیستم عددنویسی، هر رقم دارای دو ارزش است:
1. ارزش مطلق: همان خود عدد است.
2. ارزش مکانی: حاصل به توان رساندن مبنا در مکان(مرتبه) عدد است.
تعیین ارزش مکانی
ابتدا باید رقم های عدد را از سمت راست به چپ شماره گذاری کرد (تعیین مرتبه)، و این شماره از عدد صفر شروع میشود. اگر عدد مبنا را به توان مرتبه برسانید، ارزش مکانی رقم مشخص میشود.
برای مثال مرتبه ارقام عدد 8624 به صورت زیر مشخص میشود.
در این جدول رقم 6 دارای ارزش مطلق 6 و مرتبه 2 است و ارزش مکانی آن 102 است.
محاسبه ارزش هر رقم
ارزش هر رقم، حاصل ضرب، ارزش مطلق رقم در ارزش مکانی خودش است.
برای مثال در سیستم دهدهی، اولین رقم سمت راست در 100، دومین رقم سمت راست در 101 و سومین رقم سمت راست در 102 و …. ضرب میشود و به همین ترتیب ادامه پیدا میکند.
مثال جدول ارزش مکانی عدد 8624:
سیستم عددنویسی دودویی (Binary System)
سیستم عددنویسی مبنای دو از رقم های صفر و یک {1 و 0} تشکیل شده است که مبنای کار رایانه هاست و الفبای زبان رایانه نامیده میشود.
در سیستم دودویی به هرکدام از صفرها یا یک ها، یک بیت (bit (binary digit)) می گویند.
در سیستم عددنویسی مبنای دو، ارزش مطلق هر رقم میتواند 0 یا 1 باشد و برای تعیین ارزش مکانی یک رقم عدد 2 را به توان مرتبه میرسد و ارزش هر رقم از حاصل ضرب ارزش مطلق عدد در ارزش مکانی عدد حاصل میشود.
با جمع ارزش ارقام یک عدد در سیستم عددنویسی مبنای دو، معادل ده دهی آن عدد به دست می آید.
مثال: معادل دهدهی عدد ₂(1101):
برای سهولت، بالای هر رقم ارزش مکانی آن را می نویسیم و ارزش مکانی رقم هایی که یک هستند را با هم
جمع می کنیم.
با تغییر مبنای عدد، ماهیت آن عوض نمیشود؛ بلکه فقط شکل نمایش آن تغییر میکند، بنابراین میتوان نوشت:
ارزش هر رقم در سیستم عددنویسی دودویی، 2 برابر ارزش رقم سمت راست خودش است. و در سیستم دهدهی 10 برابر.
تبدیل عدد مبنای 10 به 2 به روش کاهش وزن ها
مثال: (تبدیل عدد 53 از مبنای 10 به مبنای 2)
1.توان های 2 را می نویسیم تا جایی که یک مرتبه از عدد 53 بزرگتر باشد.
2. بزرگترین توانی که کوچکتر از عدد 53 است را پیدا می کنیم. در واقع یک بستە 32 تایی برمی داریم و باقیمانده را به دست می آوریم 21 = 32 – 53
3. یک بستە 16 تایی هم بر می داریم و باقیمانده را به دست می آوریم 5=16-21. در این مرحله بستە 8 تایی نداریم، بنابراین در مرتبە 8 مقدار 0 قرار میگیرد.
4. یک بستە 4 تایی هم بر می داریم و باقیمانده را مجدد حساب می کنیم 1=4-5. برای مرتبه 2 هم مقدار 0 قرار می دهیم.
5. باقی مانده عدد 1 است که در محل خودش قرار میگیرد.
6. عدد حاصل 110101 خواهد بود.
سیستم عددنویسی هگزا دسیمال (Hexadecimal)
سیستم عددی مبنای 16 یکی دیگر از سیستم های عددی کاربردی در رایانه است. نمایش آدرس دهی حافظه و آدرس فیزیکی کارت های شبکه و کد رنگ ها نمونه هایی از کاربرد این سیستم در رایانه هستند.
سیستم شمارش هگزادسیمال دارای ۱۶ رقم شامل اعداد ۰ تا ۹ و حروف A تا F است که معرف اعداد ۱۰ تا ۱۵ هستند.
سیستم شمارش مبنای 16 نمایشی ساده تر برای اعداد در مبنای ۲ است.
برای نمونه عدد دودویی 11011111011 در مبنای ۱۶ به صورت 6FB نمایش داده میشود.
در سیستم عددنویسی مبنای شانزده ارزش مطلق هر رقم از 0 تا 15 است؛ و برای تعیین ارزش مکانی یک رقم ابتدا باید مرتبه عدد را تعیین کرد، سپس عدد 16 را به توان مرتبه رساند؛ و ارزش هر رقم از حاصل ضرب ارزش مطلق عدد در ارزش مکانی عدد حاصل میشود.
با تعیین ارزش یک عدد در سیستم عدد نویسی مبنای 16، معادل ده دهی آن عدد به دست می آید.
مثال: معادل ده دهی عدد 16(304)
مثال 2: معادل ده دهی عدد ₁₆(3D)
تبدیل اعداد مبنای 2 به 16
در سیستم شمارش هگزادسیمال برای هر رقم 4 بیت در نظر گرفته میشود (24 = 16) بنابراین برای تبدیل آن به مبنای 2 ابتدا از سمت راست ۴ رقم را جدا کرده و معادل هگزادسیمال آن چهار رقم را مینویسیم و همین روال را برای 4 رقم بعدی نیز انجام میدهیم چنانچه تعداد ارقام باقیمانده کمتر از 4 بود، به ازای ارقامی که کم داریم پشت عدد، صفر قرار میدهیم.
تبدیل اعداد مبنای 16 به 2
برای تبدیل مبنای ۱۶ به ۲ ،هر رقم مبنای 16 را به مبنای 2 برده، در 4 بیت نمایش میدهیم.
ارتباط بین مبناهای ده دهی و دودویی و هگزادسیمال و تبدیل ارقام آنها به یکدیگر
کاربرد سیستم اعداد در رایانه
کاربرد اعداد دودویی
در بیشتر زبان های برنامه نویسی، داده های عددی صحیح و اعشاری با تعداد تعریف شده ای بیت، بیان میشوند.
کاربرد اعداد هگزادسیمال
سیستم هگزادسیمال در رایانه و ریاضی کاربردهای فراوانی دارد. برای نمایش آدرس های حافظه برنامه نویسی سطح پایین، توصیف رنگ در صفحات وب و آدرس فیزیکی کارت شبکه از این سیستم استفاده میشود.
آدرس فیزیکی کارت شبکه (MAC Address)
هر کارت شبکه دارای یک آدرس منحصربه فرد ۱۲ رقمی هگزادسیمال است که توسط کارخانه سازنده برای آن در نظر گرفته میشود. برای نمونه آدرس فیزیکی WiFi یک گوشی به این صورت است: F0:0F:0C:3F:EA:CF
این آدرس یک عدد هگزادسیمال با ۱۲ رقم است، که اگر قرار بود این عدد به صورت عدد دودویی نمایش داده شود باید از ۴۸ صفر و یک استفاده میشد
سیستم رنگ RGB
این سیستم برای رسانه های تصویری مانند صفحه نمایش و تلویزیون و هر آنچه از آن نور ساطع شود، به کار میرود. پایه و اساس RGB نور است و به جای سه رنگ قرمز، سبز و آبی، در واقع سه نور رنگی داریم؛ در صفحه نمایش، تغییر ولتاژ ارسالی به پیکسل ها باعث ایجاد نور رنگی میشود و ترکیب این نورها سبب ایجاد رنگ پیکسل میشود. نام این سیستم رنگ، از حروف اول سه رنگ تشکیل دهنده آن (RedGreenBlue) گرفته شده است که آن را سیستم RGB می نامند. ترکیب این سه رنگ اصلی، رنگ های جانبی را تشکیل میدهد.
سیستم رنگ برای نمایش، از کدهای هگزادسیمال استفاده میکند. کد هر رنگ با توجه به شدت سه رنگ قرمز، سبز و آبی تعیین میشود و شدت هر رنگ با یک عدد دو رقمی در مبنای 16 مشخص میشود. کد رنگ سبز 00FF00 است که شدت رنگ قرمز و آبی آن صفر و سبز آن FF است رنگ قرمز با کد 00FF00 نمایش داده میشود.
آدرس IP نسخه 6 (IPV6)
نسخه قدیمی آدرس IP، نسخه ۴ بود که از ۴ عدد دهدهی از 0 تا ۲۵۵ و در واقع از 4 بایت تشکیل میشود:
192.168.100.12
معادل دودویی:
11000000:10101000:01100100:00001100
نسخه 6 آدرس IP، از ۸ بخش ۱۶ بیتی شامل 0000 تا FFFF تشکیل شده است:
2701:E0B1:8003:F162:0000:1100:0000:D82E
معادل دودویی: (باید از ۱۲۸ بیت استفاده کنیم)
سیستم کدگذاری (Coding System)
سیستم اعدادی که سخت افزار رایانه عملا با آن کار میکند سیستم دودویی است و برای تشخیص حروف، اعداد و علائم مختلف به سیستم کدگذاری نیاز داریم.
رایانه ها با عدد سر و کار دارند نه با حروف. اگر داده ها بر اساس روش استاندارد و مشترکی کدگذاری نشوند، در زمان نمایش داده های دریافتی به مشکل برخورد میکنیم.
روش های مختلفی برای کدگذاری در رایانه استفاده میشود. مثل روش اسکی (ASCII)، یونیکد (UNICODE)، UTF که مورد برسی قرار می گیرد.
ASCII (American Standard Code for Information Interchange)
کدگذاری اسکی در ابتدا یک روش کدگذاری ۷ بیتی دارای ۱۲۸ حالت شامل 0000000 تا 1111111 بود که فقط 95 نویسه قابل چاپ داشت.
دراین کدگذاری برای حرف A از کد 65 استفاده میشود که کد دودویی آن 1000001 است. اگر بخواهید واژه IRAN را ارسال کنید به ترتیب اعداد ۷۳ ،82 ،65 و 78 ارسال میشوند که معادل دودویی آنها به صورت زیر خواهد بود:
1001001 1010010 1000001 1001110
نوع توسعه یافته کد اسکی برای کدگذاری از ۸ بیت استفاده میکند و به این ترتیب 256 نویسه کدگذاری میشود که تا ۱۲۸ کد آن همان اسکی استاندارد بوده و مابقی تا ۲۵۶ دارای هیچ استانداردی نبوده و در رایانه های مختلف ممکن است متفاوت باشد. برای مثال در رایانه ۱ کد 150 معادل û و در رایانه ۲ کد 150 معادل حرف ب است. کدگذاری از ۱۲۸ به بعد در روش کدگذاری اسکی برای زبان های مختلف کاربرد دارد.
یونیکد (Unicode)
یونیکد به هر نویسه مستقل از محیط، برنامه و زبان یک کد منحصر به فرد به نام Code point اختصاص میدهد. این استاندارد یک کد به نویسه های مشترک در چند زبان مختلف اختصاص میدهد. نسخه جدید یونیکد دارای 136690 Code point است. 128Code point ابتدایی یونیکد، همانند کدهای اسکی هستند و در یونیکد نویسه ها به صورت ۳۲ بیتی تعریف میشوند. ولی بسیاری از نرم افزارها به ویژه برنامه های ارسال و دریافت اطلاعات در اینترنت با نویسه های ۸ بیتی کار می کنند و عملا نمیتوان 136690 Code point را در ۸ بیت جا داد و برای ارسال و دریافت 32 بیت به پهنای باندی 4 برابر بیشتر نیاز است. در این موارد از UTF-8 استفاده شد که مخفف قالب 8 بیتی انتقال مجموعه نویسه ای جهانی است.
8-UTF
یک رمزگذاری با طول متغیر 4 بایتی است. یک بایت برای حروف و علائم استاندارد انگلیسی که همان کدهای اسکی هستند، دو بایت برای بقیه حروف لاتین و نویسه های خاورمیانه و سه بایت برای شرق آسیا استفاده میشود. بقیه نویسه ها با چهار بایت نمایش داده میشوند.
با توجه به اینکه 8-UTF از کدهای 127 برای نویسه های اسکی استفاده میکند، در تمامی نرمافزارهایی که از نویسه های 7 بیتی پشتیبانی میکنند قابل پردازش است.
8-UTF رایج ترین روش رمزگذاری نویسه در میان تارنماها است. UTF دارای نسخه های مختلفی مانند
UTF-32، UTF-16، UTF-8، UTF-7 است و UTF-8 محبوب ترین نوع کد گذاری یونیکد است.