انواع دستگاه عددی

ریاضیات امروزی بر پایه سیستم عددی اعشاری (Decimal) یا همان مبنای ۱۰ است. یعنی برای ساختن یک عدد، ده رقم وجود دارد (از 0 تا 9). در سیستم باینری (Binary) یا دودویی برای ساختن یک عدد فقط دو رقم داریم (صفر و یک). در سیستم هگزادسیمال (Hexadecimal) یا مبنای ۱۶، برای ساختن یک عدد شانزده رقم در دسترس است (0 تا 9 و A تا F). از معروف‌ترین سیستم‌های عددی می‌توان به باینری (مبنای ۲)، اکتال (مبنای ۸)، دسیمال (مبنای ۱۰) و هگزادسیمال (مبنای ۱۶) اشاره کرد. بدیهی است که ما محدودیتی در تعداد سیستم مبنای اعداد نداریم. حداقل مبنای سیستم اعداد، دو (باینری) است.

هر رقم در هر سیستم عددی یک ارزش مکانی دارد. ارزش مکانی هر رقم در هر سیستم، برابر است با توانی از 10 در همان سیستم. مثلا:
۱. در سیستم دودویی (مبنای دو یا باینری) ارزش مکانی هر رقم به توانی از 2 (10 در سیستم باینری) مرتبط است.
۲. در سیستم اکتال (مبنای هشت) ارزش مکانی هر رقم به توانی از 8 (10 در سیستم اکتال) مرتبط است.
۳. در سیستم اعشاری (مبنای ده یا دسیمال) ارزش مکانی هر رقم به توانی از 10 مرتبط است.
۴. در سیستم هگزادسیمال (مبنای شانزده) ارزش مکانی هر رقم به توانی از 16 (10 در سیستم هگزادسیمال) مرتبط است.

تبدیل اعداد از سیستم‌های اکتال، هگزادسیمال و باینری به دسیمال (اعشاری):
عدد 356 در سیستم اعشاری:

356 = 3 × 102 + 5 × 101 + 6 × 100 = 300 + 50 + 6 = 356

عدد 164 در سیستم هگزادسیمال:

164 = 1 × 162 + 6 × 161 + 4 × 160 = 256 + 96 + 4 = 356

عدد 544 در سیستم اکتال:

544 = 5 × 82 + 4 × 81 + 4 × 80 = 320 + 32 + 4 = 356

عدد 101100100 در سیستم باینری:

101100100 = 1 × 28 + 0 × 27 + 1 × 26 + 1 × 25 + 0 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = 256 + 0 + 64 + 32 + 0 + 0 + 4 + 0 + 0 = 356

برای نمایش دادن مبنای اعداد در دستگاه باینری حرف b را بعد از کم‌ارزش‌ترین بیت یا 0b را قبل از پرارزش‌ترین بیت اضافه می‌کنند (101100100b یا 0b101100100).
برای نمایش دادن مبنای اعداد در دستگاه هگزادسیمال حرف h را بعد از کم‌ارزش‌ترین رقم یا 0x را قبل از پرارزش‌ترین رقم اضافه می‌کنند (164h یا 0x164).

سیستم باینری

هر رقم باینری، بیت (Bit) نامیده می‌شود. در واقع Bit مخفف کلمهٔ Binary Digit است. بیت کوچک‌ترین واحد ذخیرهٔ اطلاعات محسوب می‌شود؛ چون فقط قادر به ذخیره‌سازی صفر یا یک است. مقدار ارزش یک عدد باینری براساس بیت‌های یک و ارزش مکانی آن‌ها بدست می‌آید. سیستم عددی باینری مناسب برای کامپیوترها و سخت‌افزارهاست. همهٔ اطلاعات بصورت صفر (بیت خاموش) و یک (بیت روشن) مشخص می‌شوند.

تبدیل اعداد باینری به دسیمال:
جهت تبدیل اعداد باینری به دسیمال باید از ارزش مکانی هر رقم استفاده کرد که در مثال‌های قبل نیز ذکر شد.

مثال:

101100100 = 1 × 28 + 0 × 27 + 1 × 26 + 1 × 25 + 0 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = 256 + 0 + 64 + 32 + 0 + 0 + 4 + 0 + 0 = 356

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

مثال) تبدیل عدد اعشاری 356 به باینری:

عددخارج قسمتباقیمانده
356 ÷ 21780
178 ÷ 2890
89 ÷ 2441
44 ÷ 2220
22 ÷ 2110
11 ÷ 251
5 ÷ 221
2 ÷ 210
1 ÷ 201

باقیمانده‌ها را از پایین به بالا می‌نویسیم. بدین ترتیب عدد باینری 101100100 معادل با عدد اعشاری 356 بدست می‌آید.

سیستم هگزادسیمال

هگزادسیمال روش فشرده‌تری جهت نمایش اعداد است و از 16 رقم برای نمایش استفاده می‌شود (0 تا 9 و A تا F). برای نمایش ارقام بعد از 9 از حروف A تا F اسفاده می‌شود.

A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

هر رقم هگزادسیمال معادل با چهار بيت باينری است. يک عدد چهاربيتی يک نيبل (Nibble) نام دارد. پس هر رقم هگزادسیمال معادل با يک نيبل است. دو نيبل برابر يک بايت (Byte) می‌شود؛ بنابراين با دو رقم هگزادسیمال می‌توان یک بایت را نشان داد. مقدار يک بايت می‌تواند از 00000000 تا 11111111 در باينری، 0 تا 377 در اکتال، 00 تا FF در هگزادسیمال و 0 تا 255 در دسيمال باشد.

تبدیل اعداد هگزادسیمال به دسیمال:
جهت تبدیل اعداد هگزادسیمال به دسیمال باید از ارزش مکانی هر رقم استفاده کرد که در مثال‌های قبل نیز ذکر شد.

مثال:

164 = 1 × 162 + 6 × 161 + 4 × 160 = 256 + 96 + 4 = 356
2E9D = 2 × 163 + 14 × 162 + 9 × 161 + 13 × 160 = 8192 + 3584 + 144 + 13 = 11933

تبدیل اعداد دسیمال به هگزادسیمال:
برای تبديل اعداد دسيمال به هگزادسیمال نیز مانند باينری تقسيم‌های متوالی انجام می‌شود، و عدد دسیمال باید بطور متوالی بر 16 تقسیم شود. به این شکل که عدد دسیمال به 16 تقسیم می‌شود و باقیمانده بعنوان رقم هگزادسیمال یادداشت می‌شود؛ و خارج قسمت مجدد به 16 تقسیم می‌شود. این عمل تا زمانی که خارج قسمت صفر شود ادامه پیدا می‌کند.

مثال) تبدیل عدد اعشاری 11933 به هگزادسیمال:

عددخارج قسمتباقیمانده
11933 ÷ 1674513 (D)
745 ÷ 16469
46 ÷ 16214 (E)
2 ÷ 1602

باقیمانده‌ها را از پایین به بالا می‌نویسیم. بدین ترتیب عدد هگزادسیمال 2E9D معادل با عدد اعشاری 11933 بدست می‌آید.

تبدیل اعداد هگزادسیمال به باینری:
باید هر رقم هگزادسیمال به یک عدد چهار بیتی باینری تبدیل شود.

مثال) تبدیل عدد هگزادسیمال 3F80D1 به باینری:

3 F 8 0 D 1
0011 1111 1000 0000 1101 0001

تبدیل اعداد باینری به هگزادسیمال:
باید بیت‌های عدد باینری را از سمت راست به چپ، به گروه‌های چهارتایی (چهار بیتی یا یک نیبل) تقسیم شود. سپس هر گروه به یک رقم هگزادسیمال تبدیل شود.

مثال) تبدیل عدد باینری 1111111000000011010001 به هگزادسیمال:

0011 1111 1000 0000 1101 0001
3 F 8 0 D 1


کتابخانهٔ روشن نسخهٔ 1.1.2.4 که قبلا در این صفحه توضیحاتی دربارهٔ آن داده شد، دارای توابعی است که می‌تواند مبناهای اعداد را از مبنای ۲ تا ۳۶ به یکدیگر تبدیل کند.