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

  • سه شنبه ۱۷ آذر ۱۳۹۴
  • بازدید ۳,۵۴۱ نفر

تصویر tabdid-mabna-12428 تبدیل مبناها به یکدیگر در زبان اسمبلی Assembly

آموزش تبدیل مبناها به یکدیگر در زبان اسمبلی Assembly

در این بخش از آموزش زبان اسمبلی برای شما کاربران عزیز آموزش تبدیل مبناها به یکدیگر در زبان اسمبلی Assembly را آماده کرده ایم که می توانید در ادامه آن را مشاهده کنید.

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

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

1       2        4        8        16      32      64      128    256    512    1024  …

که اگر عدد 2 را به توان 0 تا n برسانیم این عددها بدست خواهند آمد.

توضیحات بیشتر  تبدیل مبناها به یکدیگر در زبان اسمبلی Assembly را در ادامه مطلب می توانید مشاهده کنید.

تبدیل مبنای 10 به مبنای 2:

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

روش دوم: برای این منظور ما می توانیم از عدد طلایی استفاده کنیم و روش کار هم به این شکل است که عددهای طلایی که با جمع آنها عدد مورد نظر ما بدست میاید، زیر آن 1 و عددهای که در جمع استفاده نشده است زیر آنها 0 قرار میدهیم.

مثال: عدد 37 در مبنای 10 را به مبنای 2 تبدیل کنید.

در مثال زیر با جمع عدد های 1+4+32 عدد 37 بدست خواهد آمد پس ما زیر این عددها 1 قرار میدهیم و عددهای که در جمع شرکت نکردن مقدار 0 قرار خواهیم داد و در نهایت نتیجه برابر با (100101) در مبنای 2 می شود.

1        2        4        8        16      32

1        0        1        0        0        1

جهت دریافت سورس کد برنامه تبدیل مبنای 10 به مبنای 2 به زبان اسمبلی لطفا به این لینک مراجعه کنید.

تبدیل مبنای 2 به مبنای 10:

روش اول: در این روش ما می توانیم از ارزش مکانی هر عدد استفاده کنیم به طوری که عدد اول در مکان 0 عدد دوم در مکان 1 عدد سوم در مکان 2 و … قرار دارد.

مثال: عدد (100101) در مبنای 2 را به مبنای 10 تبدیل کنید.

1 * 2 ^ 5 + 0 * 2 ^ 4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^1 = 37

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

مثال: (101111) در مبنای 2 را به مبنای 10 تبدیل کنید.

1        2        4        8        16      32

1        1        1        1        0        1

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

47=1+2+4+8+32

جهت دریافت سورس کد برنامه تبدیل مبنای 2 به مبنای 10 به زبان اسمبلی لطفا به این لینک مراجعه کنید.

تبدیل مبنای 8 به مبنای 2:

بزرگترین عددی که در مبنای 8 می توانیم استفاده کنیم عدد 7 است که اگر 3 عدد اول مربوط به اعداد طلایی را در نظر بگریم و با هم جمع کنیم دقیقا این عدد بدست خواهید آمد.

1        2        4

1        1        1

پس هر عددی که در مبنای 8 داشته باشیم می توانیم آن عددها را به صورت جداگانه و یکی یکی با این 3 عدد به مبنای 2 تبدیل کنیم به مثال زیر دقت کنید.

مثال: عدد 451 در مبنای 8 را به مبنای 2 تبدیل کنید.

برای عدد اول یعنی 1 از بین 3 عدد 1 2 4 فقط عدد رقم اول را نتخاب و زیر آن عدد 1 قرار میدهیم.

برای عدد دوم یعنی 5 از بین 3 عدد 1 2 4 عددهای 4 و 1 را انتخاب می کنیم و زیر آنها عدد 1 را می نویسیم.

برای عدد سوم یعنی 4 از بین 3 عدد 1 2 4 فقط عدد 4 را انتخاب می کنیم و زیر آن عدد 1 قرار می دهیم.

نتیجه نهایی:( 001 101 100 )

تبدیل مبنای 2 به مبنای 8:

در این روش ابتدا عددهای که در مبنای 2 هستند را 3 رقم 3 رقم جدا کرده و آنها را زیر عددهای 1 2 4 قرار می دهیم و زیر عدد های که مقدار 1 قرار دارند را با هم جمع می کنیم تا نتیجه نهایی در مبنای 8 بدست آید.

مثال: عدد 110001010 در مبنای 2 را به مبنای 8 تبدیل کنید.

1 2 4           1 2 4           1 2 4

0 1 0           1 0 0           0 1 1

   2               1                     6

نتیجه نهایی: (612) در مبنای 8

تبدیل مبنای 16 به مبنای 2:

بزرگترین عددی که در مبنای 16 می توانیم استفاده کنیم عدد 15 است که اگر 4 عدد اول مربوط به اعداد طلایی را در نظر بگریم و با هم جمع کنیم دقیقا این عدد بدست خواهید آمد.

1        2        4        8

1        1        1        1

پس هر عددی که در مبنای 16 داشته باشیم می توانیم آن عددها را به صورت جداگانه و یکی یکی با این 4 عدد به مبنای 2 تبدیل کنیم به مثال زیر دقت کنید.

مثال: عدد A2C در مبنای 16 را به مبنای 2 تبدیل کنید.

برای عدد اول یعنی C از بین 4 عدد 1 2 4 8 فقط عدد 8 و 4 را نتخاب و زیر آن عدد 1 قرار میدهیم.

برای عدد دوم یعنی 2 از بین 4 عدد 1 2 4 8 عدد 1 را انتخاب می کنیم و زیر آن عدد 1 را می نویسیم.

برای عدد سوم یعنی A از بین 4 عدد 1 2 4 8 فقط عدد 8 و 2 را انتخاب می کنیم و زیر آنها عدد 1 قرار می دهیم.

نتیجه نهایی:( 1100 0010 1010 )

تبدیل مبنای 2 به مبنای 16:

در این روش ابتدا عددهای که در مبنای 2 هستند را 4 رقم 4 رقم جدا کرده و آنها را زیر عددهای 1 2 4 8 قرار می دهیم و زیر عدد های که مقدار 1 قرار دارند را با هم جمع می کنیم تا نتیجه نهایی در مبنای 16 بدست آید.

مثال: عدد 110001010 در مبنای 2 را به مبنای 8 تبدیل کنید.

1 2 4 8           1 2 4 8           1 2 4 8

0 0 1  1           0 1 0  0        0 1 0 1

   C                   2                     A

نتیجه نهایی: (A2C) در مبنای 16

 

ثبت نظر
ریفریش کنید!
نظرات کاربران (۴ مورد)
  1. تصویر آواتار کاربر 0
    ایمان سه شنبه , 5 دی

    در مورد تبدیل مبنا ها چند سوال ذهنم رو مشغول کرده بود که اینجا حل شد، خیلی ممنون.

  2. تصویر آواتار کاربر 0
    javad جمعه , 3 خرداد

    با عرض سلام و احترام متشکرم از آموزش خوب شما بسیار عالی بود

  3. تصویر آواتار کاربر 0
    علی شنبه , 27 مهر

    عالی بود.ممنون

  4. تصویر آواتار کاربر 0
    جواد رضایی سه شنبه , 16 اردیبهشت

    خیلی عالی بود