Advertisement
jukaukor

Kantalukumuunnokset.jl

Apr 18th, 2021 (edited)
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. # Lukujärjestelmien muunnokset
  2. #Juhani Kaukoranta 18.4.2021
  3. function MuunnosNto10(nluku,n)
  4. # nluku muunnettava luku, esim "8A4B"
  5. # n on muunnettavan luvun kantaluku, esm n = 16
  6. nro="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  7. m = length(nluku)
  8. s = big(0)
  9. for i = 1 : m
  10. j = findfirst(nluku[i],nro)-1
  11. s += j*big(n)^(m-i)
  12. end
  13. return s
  14. end
  15. function Muunnos(a,n)
  16. # a muunnettava 10-jarjestelmän luku, n kohdekantaluku
  17. nro="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  18. # merkistönumerot, vastaavat arvoja 0 - 62
  19. A ="" # merkkijonoon A kerätään uuden kantaluvun numerot
  20. x = a
  21. temp = div(x,n)
  22. while temp >= 0
  23. if x-temp*n < 62
  24. newnum = nro[x-temp*n+1]
  25. else
  26. newnum = string(x-temp*n)
  27. end
  28. A = newnum*A
  29. x = temp
  30. temp = div(x,n)
  31. if temp == 0 # viimeinen, uusi kierros
  32. if x < 62
  33. newnum = nro[x+1]
  34. else
  35. newnum = string(x)
  36. end
  37. A = newnum*A
  38. return A
  39. end
  40. end
  41. end
  42. function MuunnosNtoM(nluku,n,m)
  43. # n-katainen nluku muunnetaan m-kantaiseksi
  44. # nluku on merkkijonomuodossa,esim "25"
  45. n10luku = MuunnosNto10(nluku,n)
  46. return Muunnos(n10luku,m)
  47. end
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement