PDA

View Full Version : تبدیل مبنا



aleas2
جمعه 18 فروردین 1391, 23:59 عصر
سلام خسته نباشید دوتا برنامه هسته که
1- برنامه ای که یک عدد در مبنای دو گرفته و به مبنای ده ببرد.(تعمیم : از مبنای K به ده)
2- برنامه ای که یک عدد در مبنای ده گرفته و به مبنای دو ببرد.(تعمیم : از مبنای ده به k)
من منظورشو از (تعمیم : از مبنای K به ده) و (تعمیم : از مبنای ده به k) نمیفهمم شما میدونین یعنی چی؟

ho3ein.3ven
شنبه 19 فروردین 1391, 00:11 صبح
برنامه تبدیل مبنای 10 به 2

p = ""
num = Text1.Text
If num = 0 Then
n = 0
GoTo kj
End If
Do While num <> 1
h = num Mod 2
p = p & Str(h)
num = num \ 2
Loop
p = p & "1"
n = StrReverse(p)
kj:
Label1.Caption = n

aleas2
شنبه 19 فروردین 1391, 00:13 صبح
ممنون منظورشو از تعمیم شما نمیدونین یعنی چی؟

moharam1370
شنبه 19 فروردین 1391, 00:22 صبح
سلام منم تقریبأ نمیدونم

ولی یه جورایی میشه -> (گردانیدن چیزی را)

aleas2
شنبه 19 فروردین 1391, 00:52 صبح
ممنون باز اگر کسی اطلاعات کامل تری داره و میدونه منظور از تعمیم چی بگه
ضمنا" اگر روش تبدیل مبنا دو به ده هم میدونین بگین البته اگر الگوریتم تبدیل هم بگین باز کفایت میکنه یا کد بگین یا راهنمایی مختصر ممنون
فقط یادتون نره منظور از تعمیم هم بگین ممنون

Mr'Jamshidy
شنبه 19 فروردین 1391, 09:06 صبح
راستش من منظور از این حرف ها رو نمیدونم اما ایم تابع برای تبدیل مبنا خیلی بهتره

Function fTOX(ByVal Number As String, ByVal FromX As Long, ByVal ToX As Long) As String
Dim a As String: Dim B As Long
Dim x As String: Dim c As Long

Number = UCase(Number): c = 1

For i = 1 To Len(Number)
a = Mid(Number, i, 1)
If Asc(a) > Asc(9) Then a = Trim(Str(Asc(a) - 55))
B = B + Val(a) * (FromX ^ (Len(Number) - i))
Next i

Do While c <> 0
c = B \ ToX: d = B Mod ToX: B = c
If d > 9 Then
x = Chr(d + 55) + x
Else
x = Trim(Str(d)) + x
End If
Loop

fTOX = x
End Function


Number: عدد مورد نظر در هر مبنایی
FromX: از کدام مبنا
ToX: به کدام مبنا

این رو قبلا یکی از دوستان تو سایت گزاشته شما هم اگر جستجو میکردید حتما پیدا میشد

aleas2
شنبه 19 فروردین 1391, 09:29 صبح
ممنون منم اینو داشتم البته نه این یکی تقریبا" مثل همین ولی خب من روش ساده میخوام !خیلی کاربردی نمیخوام فقط از دو به ده ببره
؟

mjsanam
یک شنبه 29 اردیبهشت 1392, 23:45 عصر
منظورش از تعمیم احتمال قوی اینه که وقتی مثلا از 2 به ده میبره، بجای دو یه متغیری بذارید که از مبنای اون مقدار به مبنای ده ببره:متفکر:
یعنی دقیقا اینی که الآن دارم به زبان #C مینویسمش:گریه:

vbhamed
سه شنبه 31 اردیبهشت 1392, 02:27 صبح
سلام

منظور از تعميم دادن اينه كه ما كاري رو براي يك شرايط خاصي انجام ميديم و بعد سعي مي‌كنيم اون كار رو طوري انجام بديم كه در ساير شرايط مشابه هم صدق كنه
مثلا شما تابعي مي‌نويسيد كه عدد مبناي 10 رو به مبناي دو تبديل مي‌كنه، حالا تابع رو طوري تغيير ميديم كه هر عددي از هر مبنايي رو به مبناي 2 تبديل كنه
به زبان ساده يعني گسترش دادن