PDA

View Full Version : تبديل عدد حقيقي(اعشاري)در مبناي 10 به مبنا هاي ديگر



keivan.amohamadi
شنبه 12 دی 1388, 11:16 صبح
سلام،ميخوام يه برنامه بنويسم،كه يه عدد حقيقي(الزاما اعشاري) در مبناي 10 رو به مبناهايي مثل 2 و 4 و 8 و 16 تبديل كنه،ولي مشكي من تو تبديل عدد اعشاريه،ممنون ميشم راجب تبديل مبناي عدد اعشاري كمكم كنيد.
با تشكر

Salar Ashgi
شنبه 12 دی 1388, 13:32 عصر
با یک مثال ساده توضیح میدم ، تا خودتون کد مربوطه اش رو بنویسید :

مثلا ما میخوایم عدد 12.25 رو در مبنای 10 ، تبدیل کنیم به مبنای 2 :

روش کار به اینصورت خواهد بود که : 1) ابتدا قسمت صحیح اعداد اعشاری را جداگانه در مبنای 2 بدست

می آوریم ، 12 => 1100 سپس 2) قسمت اعشار را بطور متوالی در مبنا ضرب میکنیم ، هر بار قسمت

صحیح عدد رو برداشته و قسمت اعشاری عدد حاصل رو دوباره در مبنا ضرب می کنیم تا زمانیکه به یک

برسیم که ممکن است بعضی اوقات نرسیم که در این حالات باید تا یک تعداد محدودی ارقام اعشار محاسبه

کنیم ، خوب برای این مثال :



0.25 * 2 = 0.5 ==> 0
0.5 * 2 = 1 ==> 1

Result :
12.25 = (1100.01)
2


موفق باشید .

keivan.amohamadi
سه شنبه 15 دی 1388, 11:31 صبح
ممنون از راهنمايي خوبتون،من يه سوال ديگه هم داشتم و اونم اينه كه اگه اين عدد حقيقي قسمت اعشارش متناوب باشه بايد چيكار كرد، مثلا همون مثال خودتون به صورت 0.25252525 باشه و عدد مبناي 2 اون بشه 0.01010101 آيا راهي وجود داره كه تكرار نكنيم و اونو به صورت 0.01 با يه خط بالاش براي نشون دادن متناوب بودنش بنويسيم،مثلا از گرافيك استفاده كنيم؟

با تشكر

Salar Ashgi
سه شنبه 15 دی 1388, 14:16 عصر
در توضیحات نیز گفتم اگه عدد اعشاری ما هیچ وقت به یک نرسه ، معمولا یه تعداد ارقام محدودی از آن مثل

دو رقم ، 3رقم و ... را نشان میدهند و یا میتوانید برای نشان دادن حالت متناوب بودن از کاراکتر های مناسب با

کد های اسکی مربوطه استفاده کنید (یا از کاراکتر خط تیره)

موفق باشید .