# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C >  تبديل  عدد حقيقي(اعشاري)در مبناي 10 به مبنا هاي ديگر

## keivan.amohamadi

سلام،ميخوام يه برنامه بنويسم،كه يه عدد حقيقي(الزاما اعشاري) در مبناي 10 رو به مبناهايي مثل 2 و 4 و 8 و 16 تبديل كنه،ولي مشكي من تو تبديل عدد اعشاريه،ممنون ميشم راجب تبديل مبناي عدد اعشاري كمكم كنيد.
با تشكر

----------


## Salar Ashgi

با یک مثال ساده توضیح میدم ، تا خودتون کد مربوطه اش رو بنویسید :

مثلا ما میخوایم عدد 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

ممنون از راهنمايي خوبتون،من يه سوال ديگه هم داشتم و اونم اينه كه اگه اين عدد حقيقي قسمت اعشارش متناوب باشه بايد چيكار كرد، مثلا همون مثال خودتون به صورت 0.25252525 باشه و عدد مبناي 2 اون بشه 0.01010101 آيا راهي وجود داره كه تكرار نكنيم و اونو به صورت 0.01 با يه خط بالاش براي نشون دادن متناوب بودنش بنويسيم،مثلا از گرافيك استفاده كنيم؟

با تشكر

----------


## Salar Ashgi

در توضیحات نیز گفتم اگه عدد اعشاری ما هیچ وقت به یک نرسه ، معمولا  یه تعداد ارقام محدودی از آن مثل

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

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

موفق باشید .

----------

