Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Lukujärjestelmien muunnokset
- #Juhani Kaukoranta 18.4.2021
- function MuunnosNto10(nluku,n)
- # nluku muunnettava luku, esim "8A4B"
- # n on muunnettavan luvun kantaluku, esm n = 16
- nro="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
- m = length(nluku)
- s = big(0)
- for i = 1 : m
- j = findfirst(nluku[i],nro)-1
- s += j*big(n)^(m-i)
- end
- return s
- end
- function Muunnos(a,n)
- # a muunnettava 10-jarjestelmän luku, n kohdekantaluku
- nro="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
- # merkistönumerot, vastaavat arvoja 0 - 62
- A ="" # merkkijonoon A kerätään uuden kantaluvun numerot
- x = a
- temp = div(x,n)
- while temp >= 0
- if x-temp*n < 62
- newnum = nro[x-temp*n+1]
- else
- newnum = string(x-temp*n)
- end
- A = newnum*A
- x = temp
- temp = div(x,n)
- if temp == 0 # viimeinen, uusi kierros
- if x < 62
- newnum = nro[x+1]
- else
- newnum = string(x)
- end
- A = newnum*A
- return A
- end
- end
- end
- function MuunnosNtoM(nluku,n,m)
- # n-katainen nluku muunnetaan m-kantaiseksi
- # nluku on merkkijonomuodossa,esim "25"
- n10luku = MuunnosNto10(nluku,n)
- return Muunnos(n10luku,m)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement