[ 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.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|