Guest User

Untitled

a guest
Oct 20th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. class String
  2. def base60_decode
  3. n = 0
  4. self.each_byte do |c|
  5. case
  6. when c >= 48 && c <= 57
  7. c -= 48
  8. when c >= 65 && c <= 72
  9. c -= 55
  10. when c == 73 || c == 108
  11. c = 1
  12. when c >= 74 && c <= 78
  13. c -= 56
  14. when c == 79
  15. c = 0
  16. when c >= 80 && c <= 90
  17. c -= 57
  18. when c == 95
  19. c = 34
  20. when c >= 97 && c <= 107
  21. c -= 62
  22. when c >= 109 && c <= 122
  23. c -= 63
  24. else
  25. c = 0
  26. end
  27. n = (60 * n) + c
  28. end
  29. n
  30. end
  31. end
  32.  
  33. class Integer
  34. BASE60_MAP = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ_abcdefghijkmnopqrstuvwxyz"
  35. def base60_encode
  36. return self if self == 0
  37. s = ""
  38. n = self
  39. while n > 0 do
  40. d = n % 60;
  41. s = BASE60_MAP[d] + s;
  42. n = (n-d)/60;
  43. end
  44. s
  45. end
  46. end
Add Comment
Please, Sign In to add comment