PDA

View Full Version : سوال: مبنا ها



ali-iman
شنبه 24 تیر 1396, 21:08 عصر
سلام به همگی شب و روزتون بخیر . اگه میشه یه نفر مبنا هارو به من توضیح بده که اصلا چی هست و چجوری مبنای یه عدد رو به دست میارن . اگه میشه مبنای 2 و 10 و 16 رو هم بگید .خیلی ممنون

Ananas
پنج شنبه 09 شهریور 1396, 17:04 عصر
سلام به همگی شب و روزتون بخیر . اگه میشه یه نفر مبنا هارو به من توضیح بده که اصلا چی هست و چجوری مبنای یه عدد رو به دست میارن . اگه میشه مبنای 2 و 10 و 16 رو هم بگید .خیلی ممنون
سلام. عدد ها تو کامپیوتر به شکل دودویی ذخیره میشن و معمولا پک هایی هستن که سایزشون توانی از دو هست. مثلا عدد صحیح 8 بیت. 16 بیت..32 و 64 بیت. و اینطوریه که سیستم عددیه کامپیوتر دودوییه. ینی مبنای دو. با همین مبنا محاسبات جمع و تفریق و ضرب و تقسیم و ... رو انجام میده چون خیلی ساده تره. فقط ارقام یا 0 هستن یا یک.
مبناهایی هم که توانی از دو هستن با دو سازگاری دارن و خیلی راحت تبدیل میشن. سیستم 16 به این خاطر مهم هست که بعد از هشت کوچیکترین مبنایی هست که ارقام 0 تا 9 رو به راحتی پوشش میده و بعد از 9 میشه a و b و c و d و e و f.
خود محتوا و مقدار و مفهوم یک عدد همیشه ثابت هست. یعنی مثلا 3 تا پرتقال رو اگر بخایمدر مبنای ده دهی بگیم همونقدر پرتقاله که تو مبنای دودویی بخایم بگیم. این خیلی مهمه...ینی تعداد پرتقالهامون یکیه ولی نمایش ارقام در هر مبنا متفاوته. یعنی ما سه عدد پرتقال رو در مبنای 10 به شکل 3 نمایش میدیم ولی مثلا در مبنای دو همون تعداد پرتقال رو به شکل 11 نمایش میدیم.
پس بنابر این عددی که به شکل متغیر صحیح داخل کامپیوتر ذخیره میشه محتواش ثابته در همه ی مبناها ولی موقع نمایش میتونیم اون رو در مبنای 2 یا 8 یا 10 یا 16 یا .. نمایش بدیم. و یک مورد دیگه هم تبدیل ارقام به عدد هست...ینی ما دوتا مورد داریم مربوط به عملیات تبدیل مبنا:
یکی اینکه عدد رو (متغیر صحیح در برنامه نویسی) به شکل ارقامی در مبنای خاصی نمایش بدیم. مثلا مبنای ده.
دوم اینکه ارقامی رو در مبنای خاصی از کاربر به عنوان ورودی بگیریم و اون ارقام رو به شکل متغیر عدد صحیح تبدیل کنیم . مثلا نوع int.
پس شد:
1 - تبدیل از int به ارقام در مبنای خاص
2 - و یا تبدیل از ارقام در مبنای خاص به int
پس در واقع تبدیل مبنا تو خود عملیات داخلیه کامپیوتر بی معنیه و فقط تو بحث ارتباط با کاربر و یا خوندن و نوشتن عدد به شکل ارقامی در مبنای مورد نظر هست که میایم تبدیل مبنا انجام میدیم. محتویات متغیر int ما یکیه و سیپیو در مبنای دو محاسباتش رو انجام میده که فرقی هم نداره برای ما نتیجش یکیه و ما میتونیم همون محتوا رو در مبنای ده یا هر مبنای دیگه ای استفاده کنیم.