[ veek @ 07.10.2004. 23:51 ] @
Potrebna mi je pomoc oko pretvaranja brojeva. Npr. naucio sam kako da pretvaram broj iz decimalnog u binarni ili iz binarnog u oktalni ili heksadecimalni. Problem nastaje kada trebam da npr. broj sa osnovom 3 prebacim u osnovu 7 ili obrnuto. Ovo je samo primer a koliko znam princip je slican i za druge osnove.
Molim da ukoliko neko ima neki link ili zna za neku online literaturu ili ga ne mrzi neka napise ovde. Stvarno mi je bitno da bih polozio ispit.
[ filjo @ 08.10.2004. 03:56 ] @
O pretvaranju brojeva je vec bilo puno price pa potrazi malo na forumu.
Nisam primetio da je neko dao program za pretvaranje iz jedne u drugu osnovu pa evo jednog na brzinu. Zbog duzine programa nema nikakvih provera ispravnosti unetih podataka, ali moze da posluzi.

Code:

Public Function rr() As Integer
Dim st1, st2, st3 As String
Dim raz, cif, os1, os2 As Byte
Dim ceo, Broj As Double
    os1 = Val(InputBox("Osnova broja "))
    st1 = UCase(InputBox("Unesi broj "))
    os2 = Val(InputBox("Osnova u koju se konvertuje "))
    Broj = 0
    raz = Asc("A") - Asc("9") - 1
    st3 = st1
    Do
        Broj = Broj * os1
        cif = AscB(st1) - Asc("0")
        If cif > 9 Then
            cif = cif - raz
        End If
        Broj = Broj + cif
        st1 = Mid(st1, 2)
    Loop Until st1 = ""
    st2 = ""
    Do
        cif = Broj Mod os2
        If cif > 9 Then
            st2 = Chr(cif + Asc("0") + raz) + st2
        Else
            st2 = Chr(cif + Asc("0")) + st2
        End If
        Broj = Int(Broj / os2)
    Loop Until Broj = 0
    MsgBox "Osnova (" & Str(os1) & " ) = " & st3 & Chr(13) & "Osnova (" & Str(os2) & " ) = " & st2
End Function
[ veek @ 08.10.2004. 21:22 ] @
Hvala na odgovoru ali ovo mi ne resava stvar. Prelistao sam forum i nisam nasao npr. iz osnove 3 u osnovu 8. Potrebno mi je da znam princip jer na ispitu rucno prebacujemo iz jedne u drugu osnovu.
[ filjo @ 08.10.2004. 22:08 ] @
Evo ovako je najlakse:Prvo prebacis u osnovu 10 pa iz osnove deset u zeljenu osnovu.Ako imas isnove koje su stepeni dvojke (2,4,8,16) onda se prvo broj pretvara u binarni a zatim u ciljnu osnovu.

Slucaj 1:

2371(8) = 2*8^3 + 3*8^2 + 7*8^1 + 1*8^0 = 1024 + 192 + 56 + 1 = 1273(10)

sada ides 1273 iz osnove 10 u osnovu 3:

1273/3= 424.33 --> 424*3= 1272 ----> 1273-1272= 1 ovo je ostatak pri deljenju tj 1.cifra (z desna)
424/3= 141.33 --> 141*3= 423 ----> 424-423= 1 ovo je ostatak pri deljenju tj 2.cifra
141/3= 47.00 --> 47*3= 141 ----> 141-141= 0 ovo je ostatak pri deljenju tj 3.cifra
47/3= 15.66 --> 15*3= 45 ----> 47-45= 2 ovo je ostatak pri deljenju tj 4.cifra
15/3= 5.00 --> 5*3= 15 ----> 15-15= 0 ovo je ostatak pri deljenju tj 5.cifra
5/3= 1.66 --> 1*3= 3 ----> 5-3= 2 ovo je ostatak pri deljenju tj 6.cifra
broj je manji od osnove i to je zadnja cifra 1 (prva levo)

sada procitas ostatke, ides od dole prema gore: 1202011(3)

Znaci: 2371(8)=1273(10)=1202011(3)

Slucaj 2 si rekao da znas(ono sa stepenom dvojke) pa te necu gnjaviti, mada je ovo pod 1 univerzalan metod i mozes uvek da ga koristis.

Poz

[ darkosos @ 09.10.2004. 06:54 ] @
Citat:
veek: Hvala na odgovoru ali ovo mi ne resava stvar. Prelistao sam forum i nisam nasao npr. iz osnove 3 u osnovu 8. Potrebno mi je da znam princip jer na ispitu rucno prebacujemo iz jedne u drugu osnovu.


!!!!????
Jesi li tražio princip ili si tražio baš iz osnove 3 u osnovu 8? Ako ovo drugo, onda me ne čudi što nisi našao, a ako ovo prvo, onda me čudi da nisi...
[ veek @ 10.10.2004. 00:41 ] @
darkosos naravno da sam mislio na princip.

filjo hvala ti puno na pomoci.

Citat:
5/3= 1.66 --> 1*3= 3 ----> 5-3= 2 ovo je ostatak pri deljenju tj 6.cifra
broj je manji od osnove i to je zadnja cifra 1 (prva levo)


Mozes li da mi objasnis zasto je zadnja cifra ( prva s leva) 1. Malo me buni ovo. A sta ako je broj jednak osnovi jer onda zadnja cifra 0???
[ malada @ 10.10.2004. 12:53 ] @
Princip je sledeci (valjda):
imas broj (x) u sistemu sa osnovom n i treba da ga prebacis u sistem sa osnovom m
Prvo trazis ostatak pri dijeljenju x sa m (to ti je prva ili zadnja cifra provjeri na nekom primjeru), zatim x podijelis (cjelobrojno) sa m i tako nastavis postupak...
[ filjo @ 10.10.2004. 13:19 ] @
@veek pa zato je zadnja cifra 1 zato sto ti je ostao samo broj 1. Kada ga podelis sa osnovom dobijas celobrojni deo 0 i ostatak, koji je 1.
Ako je broj deljiv sa osnovom onda je cifra naravno 0 posto je ostatak 0.

[ veek @ 10.10.2004. 22:37 ] @
Zahvaljujem se na pomoci. Konacno sam shvatio (valjda) postupak.

Pozdrav!
[ veek @ 12.10.2004. 22:33 ] @
E šipak sam shvatio, samo do deset. :lol
Kako prebacujem brojeve u osnove preko 10 npr. u osnovu 13. Znam da prebacim u 16 ali kako u 11,12,13,14,15. Kako prilikom deljenja osnovom da dobijem ostatak A,B,C itd. Ajde pomagajte znam da je prosto i jednostavno kada se zna ali ja nisam te sreće i evo izludeh.

Pozdrav.
[ Bojan Basic @ 12.10.2004. 22:36 ] @
A, B, C... - to su ti samo oznake za 10, 11, 12... redom. Znači, kad dobiješ ostatak 11 to ti je B i tako dalje.
[ veek @ 12.10.2004. 22:46 ] @
Bojane hvala na ovako brzom odgovoru. Jel A predstavlja oznaku za 10 ili za 11?

I jos jedno pitanje : Da li se brojevi sa osnovom vecom od 10 pretvaraju u osnovu 10 po istom principu kako je gore napisao filjo. Mislim da je postupak isti ali eto da proverim.

Pozdav.
[ Bojan Basic @ 12.10.2004. 22:55 ] @
A=10, B=11, C=12 i tako dalje dokle ti treba.

Za obrnuti postupak važi sve isto, kad negde piše A to računaš kao 10 i slično za ostala slova, analogno kao i prvi smer.
[ veek @ 12.10.2004. 23:53 ] @
Dobro je, sad mi je konacno jasno.