تبلیغات
Bcode.ir - سیستم های عدد نویسی باینری ، اوکتال ، دسیمال ، هگزا دسیمال

سیستم های عدد نویسی باینری ، اوکتال ، دسیمال ، هگزا دسیمال

نویسنده :
تاریخ:یکشنبه 12 فروردین 1397-01:33 ق.ظ

سیستم های عدد نویسی در کامپیوتر

درحالیکه محاسبات روزمره ما در مبنای 10 انجام می گیرد کامپیوتر کلیه محاسبات را در مبنای 2 انجام می دهد. سیستم عددی 16 برای نمایش کوتاهتر اعداد باینری استفاده می شود. برای درک بهتر خیلی مواقع نیاز به تبدیل مبنای 10، 2 یا 16 به یکدیگر هستیم.

1-سیستم دهدهی شامل اعداد (0-9)  مثل (436)
2-سیستم دودویی یا مبنای 2 شامل اعداد(0-1) مثل (010100001)
3-سیستم اوکتال مبنای هشت شامل اعداد (0-7) مثل (23547)
4-سیستم هگزادسیمال یا مبنای 16 شامل اعداد (0-15) مثل (0FA95)
نکته :  در سیستم هگزا دسیمال از عدد 9 به بعد به صورت حروف نمایش داده می شود که به ترتیب میشود >>(َA-B-C
-D-E-F)
در کارهای روزمره از سیستم عددی اعشاری یا مبنای 10 استفاده می کنیم. ولی برای سادگی سخت افزار، کلیه اطلاعات به شکل بیت های خاموش و روشن (یا صفر و یک) رمز می شوند. بنابراین سیستم عددی دودویی که تنها شامل ارقام صفر و یک است برای این منظور بسیار مناسب است. عدد 1 نشان دهنده ولتاژ بالا یا روشن و عدد صفر بیان کننده ولتاژ پایین یا خاموش است.

نکته: برای تعیین مبنای عدد یک حرف کوچک در انتهای آن قرار می گیرد. مثال 45h به معنی عدد 45 در مبنای شانزده است. 11010011b یعنی این عدد در مبنای 2 است. این روشی است که اسمبلر اعداد را در برنامه های اسمبلی تشخیص می دهد.

سیستم عددی اعشاری Decimal

اعداد اعشاری (Decimal) یا مبنای 10 از ارقام صفر تا 9 تشکیل می شوند. در یک عدد هر رقم به توانی از 10 مرتبط است که نشان دهنده ارزش مکانی رقم در عدد است.

مثال : عدد 173 در  سیستم دههی به صورت زیر نمایش داده میشود:

نحوه نمایش عدد در سیستم دهدهی یا Decimal

  • ارزش مکانی :


مثالی از ارزش مکانی اعداد


سیستم عددی دودویی یا باینری (binary)

سیستم باینری (binary) یا مبنای 2 بر اساس تنها دو وضعیت است: روشن (1) یا خاموش (0) است. یک رقم باینری یک بیت نامیده می شود (در واقع کلمه Bit مخفف Binary Digit است).

تبدیل باینری به دهدهی

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

مثلا 0101110001 نمونه ای از یک عدد دودویی است مبنای اعداد نیز به صورت اندیس در کنار پرانتز نوشته میشود مثل روبه رو :  2(0101110001)

نکته :  به هرکدام از صفر و یک ها یک بیت گفته می شود . برای آنکه بدانیم مثلا با 5 بیت چند عدد می توان درست کرد کافیست عدد 2 را به توان تعداد بیت برسانیم که جواب 32 عدد می شود.

روش تبدیل عدد باینری به دهدهی

نکته : به طور کلی برای تبدیل اعداد از مبنای کمتر از 10 به مبنای 10 از روش بالا استفاده میکنیم. مثلا اگر مبنا 3 ، 5 یا 7 هم باشد مانند مثال بالا عمل می کنیم . در مثال ذکر شده چون مبنا 2 بود 2 را به توان شماره اعدد رساندیم حال اگر مثلا مبنا 8 بود باید 8 رو به توان شماره اعداد می رساندیم و ضرب در خود عدد می کردیم تا به مبنای ده  برسیم .

تبدیل مبنا از دهدهی به دودویی:

نکته :  به طور کلی برای تبدیل عددی از مبنای 10 به مبناهای کوچکتر باید از روش تقسیم متوالی آن عدد بر مبنای جدید استفاده کنیم

تقسیم تا جایی باید ادامه پیدا کند که خارج قسمت از مبنای جدید کوچکتر شود . در مثالی که در پایین آوردیم عدد 48 با تقسیم متوالی بر 2 به جایی رساندیم که خارج قسمت عدد 1  از مقسوم علیه ( مبنای جدید) یعنی عدد 2  کوچکتر است


تبدیل دسیمال به باینری


تبدیل مبناهای دیگر به یکدیگر

  • روش غیر مستقیم :

اعداد از مبناهای دیگر به مبنای 10 و سپس از مبنای 10 به مبنای جدید تبدیل کنیم .

  • روش مستقیم :

مثال :


تبدیل مبناهای اعشاری

  • عدد اعشاری که بخش صحیح آن صفر است :

مثال : عدد   0.6875  را به مبنای 2 برسانید .

مراحل تبدیل : طبق تصویر زیر مراحل را توضیح می دهیم .

تبدیل اعداد اعشاری به دودویی

  1.  عدد 0.6875 را ضرب در مبنای خود یعنی 2 می کنیم که جواب آن 1.3750 می شود
  2. قسمت صحیح آن ( 1 ) و قسمت اعشاری آن ( 0.3750 ) را جداگانه می نویسیم
  3. قسمت اعشاری را دوباره ضرب در مبنا می کنیم یعنی 0.3750 *2  و دوباره قسمت صحیح و اعشاری را جدا می نویسیم و قسمت اعشاری را ضرب در مبنا می کنیم . این کار را تا جایی ادامه می دهیم که قسمت اعشاری صفر شود
  4. بخش های صحیح بدست آمده را از بالا به پایین می نویسیم که در کنارش (  .0  ) می گذاریم  :  (   0.1011    )
  • عدد اعشاری که بخش صحیح هم دارد :

مثال : عدد     15.895   را به مبنای 8  برسانید

طبق تصویر زیر : ابتدا  باید بخش صحیح آن یعنی 15 را با روشی که قبلا" گفته شد به مبنای 8 برسانیم سپس بخش اعشاری آن را با همین روشی که در بخش قبل گفتیم تغییر مبنا بدهیم و کنار هم بنویسیم .

قسمت اعشاری زمان شماره گذاری باید منفی نوشته شود

تبدیل عدد اعشاری که بخش صحیح دارد به مبنای 8


استفاده از BCD برای تبدیل دهدهی به دودویی:

 
دهدهی بی‌سی‌دی
۸ ۴ ۲ ۱
۰ ۰ ۰ ۰ ۰
۱ ۰ ۰ ۰ ۱
۲ ۰ ۰ ۱ ۰
۳ ۰ ۰ ۱ ۱
۴ ۰ ۱ ۰ ۰
۵ ۰ ۱ ۰ ۱
۶ ۰ ۱ ۱ ۰
۷ ۰ ۱ ۱ ۱
۸ ۱ ۰ ۰ ۰
۹ ۱ ۰ ۰ ۱

جدول روبرو هر کد ۴ بیتی را به یک رقم دهدهی نسبت می‌دهد. یک عدد K رقمی در BCD به 4k بیت حافظه نیازمند است به عنوان مثال عدد ۳۹۶ در BCD با ۱۲ بیت به صورت ۰۰۱۱۱۰۰۱۰۱۱۰ نمایش داده می‌شود که در آن هر گروه ۴ بیتی نشان دهده یک رقم است. هرگاه عددی دهدهدی در BCD بین ۰تا ۹ باشد با دودویی اش معادل است. هرچند که عدد BCD از ۰ها و ۱ها تشکیل شده است ولی یک عدد BCDبزرگتر از ۱۰ با عدد دودویی معادلش متفاوت است. به علاوه ترکیب دودویی ۱۰۱۰ تا ۱۱۱۱(که در جدول بالا نیست) در BCD مفهومی ندارند.

روش تبدیل:

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

به عنوان مثال، عدد ۶۵، معادل آن در سیستم تبدیل دهدهی به رمز دودویی(BCD) برابر است با کنار هم قرار دادن دو عدد ۰۱۰۱(۵ در مبنای ۲) و عدد ۰۱۱۰(۶در مبنای ۲)

عدد۶۵ در سیستمایجاد دهدهی به رمز دودویی(BCD) برابر است با: ۰۱۱۰ ۰۱۰۱



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

دستگاه اعداد پایه ۱۶ یا دستگاه شانزده‌شانزدهی (به انگلیسی: hexadecimal) (هِگزادِسیمال) (به اختصار hex) در علوم رایانه و ریاضیات، سامانهٔ عددنویسی بر پایه ۱۶ می‌باشد. این سیستم از نمادهای   ۰ تا ۹  برای مقادیر   صفر تا نه   و   از حروف  F،E،D،C،B،A   برای مقادیر ده تا پانزده استفاده می‌کند. عددنویسی به صورت هگزادسیمال به طور گسترده‌ای توسط طراحان و برنامه‌نویسان سیستم‌های رایانه‌ای مورد استفاده قرار می‌گیرد. در رایانش، هگزادسیمال معمولاً با پیشوند "0x" آغاز می‌شود.

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

جدول ضرب هگزا دسیمالجدول‌ضرب هِگزادسیمال

اسمبلر و دیباگر برای نمایش اعداد باینری به صورت مختصر روش هگزادسیمال (Hexadecimal) یا به طور خلاصه هگز را بکار می برند. اعداد هگز مبنای 16 را استفاده می کنند و از 16 رقم صفر تا 15 تشکیل شده اند. برای نمایش ارقام دورقمی بعد از 9 از حروف A تا F استفاده می شود. به عبارت دیگر 16 رقم هگز شامل 0, 1, 2, 3, 4, 5, 6, 7, 8, F, E, D, C, B, A, 9 است (A=10، B=11، C=12، D=13، E=14 وF=15 ).

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

تبدیل باینری به هگز

برای نمایش یک عدد باینری به هگز ابتدا عدد را از راست به چپ به گروه های چهاربیتی تقسیم کنید (اگر آخرین گروه سمت چپ کمتر از چهار بیت بود صفر اضافه می شود)، سپس هر بخش به یک رقم هگز تبدیل می شود.

مثال. تبدیل عدد 000111100000011110110100b به هگز

0001 1110 0000 0111 1011 0100
1 E 0 7 B 4

تبدیل هگز به باینری

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

مثال. تبدیل عدد 60794h به باینری.

Hex: 6 0 7 9 4
Binary: 0110 0000 0111 1001 0100

توجه کنید که صفرهای ابتدای چهار بیت اهمیت دارند. اگر این صفرها برای ارقام میانی قرار نگیرند حاصل اشتباه است.

تبدیل اعشاری به هگز

برای تبدیل دسیمال به هگز مانند باینری تقسیم های متوالی بر 16 انجام می شود.

مثال. تبدیل عدد 589 به هگز



تبدیل هگز به اعشاری

ارزش هر رقم هگز با توانی از 16 مشخص می شود. برای تبدیل اعداد از مبنای 16 به 10 هر رقم در ارزش مکانی اش ضرب می شود.

مثال. تبدیل عدد 3BA4h به مبنای 10.

Hex : 3BA4
Decimal: 3×163 + 11×162 + 10×161 + 4× 160
     = 3×4096 + 11×256 + 10×16 + 4×1
     = 15268

جمع اعداد در هگزادسیمال

چند جمع ساده در مبنای 16.

7 + 3 = A
6 + 7= D
F + 1 = 10
10 + 30 = 40
F + F = 1E
38 + 18 = 50
FF + 1 = 100

جمع دو عدد هگز

1 1 7 E C 6 + 3 4 0 A B 2 D 0
  1   1  
  7 E C 6
+ 3 4 0 A
  B 2 D 0
6 + A = 6 + 10 = 16 => 10h
C + 0 + 1 = 12 + 0 + 1 = 13 => Dh
E + 4 = 14 + 4 = 18 => 12h
7 + 3 + 1 = 11 => Bh
دستگاه اعداد پایه ۸ یا اوکتال OCTAL

دستگاه اعداد پایه ۸ یا دستگاه اعداد هشت‌هشتی یا اکتال (به انگلیسی: octal) (به اختصار oct) در دستگاه اعداد به عددها در پایه ۸ گفته می‌شود. در این دستگاه اعداد از رقم‌های ۰−۷ استفاده می‌شود. اعداد هشت‌هشتی را می‌توان از اعداد دودویی بدست آورد، به این گونه که به صورت بسته‌های سه‌تایی از سمت راست جدا می‌کنید. برای مثال، معادل باینری عدد دسیمال ۷۴ برابر ۱۰۰۱۰۱۰ است که اگر گروه‌های سه‌تایی جدا کنید - ۰۱۰|۰۰۱|۰۰۱ - اکتال این عدد برابر ۱۱۲ می‌شود. در این دستگاه اعداد هر خانه توانی از ۸ را دارد. برای مثال عدد ۱۱۲ در پایه ۸:

۱۱۲۸ = ۱ x ۸۲ + ۱ x ۸۱ + ۲ x ۸۰

تبدیل ده‌دهی به پایه ۸ (دسیمال به اکتال)

برای تبدیل اعداد حسابی در پایه ۱۰ به اعداد در پایه ۸ باید عدد اصلی را بر بزرگترین توان ۸ تقسیم کنید و به همین ترتیب تا توان ۱ عدد ۸ ادامه می‌دهید. عدد مورد نظر در پایه ۸ همان خارج‌قسمت تقسیم‌هاست که به ترتیب نوشته شده‌است

نمونه، تبدیل ۱۲۵۱۰ به اکتال:

۱۲۵ / ۸^۲ = ۱
۱۲۵ - ((۸^۲)x1) = ۶۱
۶۱ / ۸^۱ = ۷
۶۱ - ((۸^۱)x7) = ۵

در نتیجه، ۱۷۵۸ = ۱۲۵۱۰.

نمونه‌ای دیگر، تبدیل ۹۰۰۱۰ به اکتال:

۹۰۰ / ۸^۳ = ۱
۹۰۰ - ((۸^۳)x1) = ۳۸۸
۳۸۸ / ۸^۲ = ۶
۳۸۸ - ((۸^۲)x6) = ۴
۴ / ۸^۱ = ۰
۴ - ((۸^۱)x0) = ۴
۴ / ۸^۰ = ۴

در نتیجه، ۱۶۰۴۸ = ۹۰۰۱۰.

روش ضرب‌های متوالی به عدد ۸

برای تبدیل اعداد کسری (اعشاری بدون قسمت صحیح) در پایه ۱۰ به پایه ۸، عدد اصلی را در ۸ ضرب می‌کنید؛ قسمت صحیح عدد بدست آمده اولین عدد اعشاری بدون قسمت صحیح در دستگاه اعداد اکتال است. با تکرار این روش برای قسمت اعشاری، بقیهٔ اعداد را محاسبه می‌کنید تا زمانی که قسمت اعشاری صفر شود یا قابل تقسیم کردن نباشد. به نمونه زیر توجه کنید.

نمونه، تبدیل ۰٫۱۶۴۰۶۲۵ به اکتال

۰٫۱۶۴۰۶۲۵ x ۸ = ۱٫۳۱۲۵ = ۱ + ۰٫۳۱۲۵
۰٫۳۱۲۵ x ۸ = ۲٫۵ = ۲ + ۰٫۵
۰٫۵ x ۸ = ۴٫۰ = ۴ + ۰

درنتیجه، ۰٫۱۲۴۸. = ۰٫۱۶۴۰۶۲۵۱۰

با ترکیبی از این دو روش می‌توانید اعداد گویای پایه ۱۰ را نیز به پایه ۸ تبدیل کنید. به این صورت که قسمت صحیح عدد را با روش اول و قسمت کسری عدد را با روش دوم بدست آورید

تبدیل پایه ۸ به ده‌دهی (اکتال به دسیمال)

اعداد هشت‌هشتی را می‌توان از اعداد دودویی بدست آورد، به این گونه که به صورت بسته‌های سه‌تایی از سمت راست جدا می‌کنید. برای مثال، معادل باینری عدد دسیمال ۷۴ برابر ۱۰۰۱۰۱۰ است که اگر گروه‌های سه‌تایی جدا کنید - ۰۱۰|۰۰۱|۰۰۱ - اکتال این عدد برابر ۱۱۲ می‌شود.

در این دستگاه اعداد هر خانه توانی از ۸ را دارد. برای مثال عدد ۱۱۲ در پایه ۸

۱۱۲۸ = ۱ x ۸۲ + ۱ x ۸۱ + ۲ x ۸۰


تبدیل پایه ۸ به دودویی (اکتال به باینری)

برای تبدیل پایه ۸ به دودویی، هر رقم اکتال را با معادل باینری‌اش عوض کنید.

برای مثال تبدیل عدد ۵۱۸ به باینری
۱۰۱۲ = ۵۸
۰۰۱۲ = ۱۸
تبدیل پایه ۸ به پایه ۱۶ (اکتال به هگزادسیمال)

تبدیل پایه ۸ به پایه ۱۶ در دو مرحله انجام می‌شود. ابتدا اکتال به باینری تبدیل می‌شود و سپس باینری تولید شده به هگزادسیمال تبدیل می‌شود؛ برای تبدیل باینری به هگزادسیمال، گروه‌های چهارتایی درست می‌کنید و مقدار آن را بدست می‌آورید که هر گروه نمایشگر یک رقم هگزادسیمال است. برای مثال، تبدیل ۱۰۵۷۸ به هگزادسیمال

تبدیل عدد به باینری:
۱ ۰ ۵ ۷
۰۰۱ ۰۰۰ ۱۰۱ ۱۱۱
سپس تبدیل آن به هگزادسیمال
۰۰۱۰ ۰۰۱۰ ۱۱۱۱
۲ ۲ F

تبدیل پایه ۱۶ به پایه ۸ (هگزادسیمال به اکتال)

برای این تبدیل، وارون عملیات بالا را انجام می‌دهید، یعنی ابتدا پایه ۱۶ را به دودویی تبدیل کرده و سپس آن از دودویی به پایه ۸ تبدیل می‌کنید



تلگرام

دسته بندی : مدار منطقی 

برچسب ها: دودویی، هگزادسیمال، اوکتا، تبدیل مبنا در سیستمهای عددنویسی کامپیوتر، تبدیل باینری به دسیمال، تبدیل دسیمال به باینری،

نظرات() 
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
نظرات پس از تایید نشان داده خواهند شد.