تالار گفتمان nCIS.ir

نسخه‌ی کامل: مبنا
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
تبدیل کردن اعداد دارای مبنا به دسیمال آسونه 
اما چه جوری اعداد رو به اعداد دارای مبنا تبدیل میکنن؟
ببینید بطور کلی این قانون رو درنظر بگیرین: برای تبدیل هر عدد از هر مبنایی به مبنای 10 باید از روش ضرب‌های متوالی استفاده کنیم و برای بردن هر عدد از مبنای 10 به سایر مبناها از روش تقسیمات متوالی. برای مثال، اگه بخوایم عدد 75 رو از مبنای 10 به مبنای 2 ببریم، باید این عدد رو مرتباً بر 2 تقسیم کنیم تا جایی که به خارج‌قسمت صفر برسیم و بعد، باقیمانده‌ها رو از آخر به اول بنویسیم:
75 (10) = ? (2)
75 / 2 = 37 (Reminder = 1)
37 / 2 = 18 (Reminder = 1)
18 / 2 = 9 (Reminder = 0)
9 / 2 = 4 (Reminder = 1)
4 / 2 = 2 (Reminder = 0)
2 / 2 = 1 (Reminder = 0)
1 / 2 = 0 (Reminder = 1)

75 (10) = 1001011 (2)

حالا همین عدد 75 رو میخوایم ایندفعه به مبنای 16 ببریم:
75 (10) = ? (16)
75 / 16 = 4 (Reminder = 11 or B in HEX)
4 / 16 = 0 (Reminder = 4)

75 (10) = 4B (16)

حالا برای بردن اعداد از هر مبنایی به مبنای 10 باید برعکس این حالت کار کنیم یعنی هر عدد رو ضربدر ارزش مکانی خودش کنیم. برای این‌کار باید ارقام عدد رو از چپ به راست، شماره‌گذاری کنیم از صفر به بالا و هر رقم رو ضربدر مبنا به توان شماره‌ی مربوطه (ارزش مکانی) کنیم. برای مثال میخوایم 113 رو از مبنای 8 به مبنای 10 ببریم:
113 (8) = ? (10)

2 1 0
-----
1 1 3

(1 * 8 ^ 2) + (1 * 8 ^ 1) + (3 * 8 ^ 0)
64 + 8 + 3 = 75

113 (8) = 75 (10)

نکته: منظور از ^ در اینجا توان هست.