Advertisement
Narzew

Conversion between int systems

May 17th, 2013
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.00 KB | None | 0 0
  1. #**Methods by Narzew
  2. #**to_is => zamiana z systemu 10 na system Y
  3. #**from_is => zamiana z systemu Y na system 10
  4. def self.to_byte(x)
  5.     x.to_s.each_byte{|x|
  6.         return x
  7.         break
  8.     }
  9. end
  10. def self.absolute_value(x)
  11.     if x > 0
  12.         return x
  13.     else
  14.         return -x
  15.     end
  16. end
  17. def self.to_is(x,y)
  18.     r = ""
  19.     x = absolute_value(x)
  20.     while x > 0
  21.         r << (x%y).chr
  22.         x = x/y
  23.     end
  24.     r = r.to_s.reverse
  25.     return r
  26. end
  27. def self.from_is(x,y)
  28.     x = x.to_s
  29.     r = 0
  30.     x.size.times{|l|
  31.         c = l+1
  32.         a = y**c
  33.         r += a*(to_byte(x[-c]).to_i)
  34.     }
  35.     return (r/y).to_i
  36. end
  37. def self.to_iscl(x,y)
  38.     r = ""
  39.     x = absolute_value(x)
  40.     while x > 0
  41.         r << (((x%y)+32)%256).chr
  42.         x = x/y
  43.     end
  44.     r = r.to_s.reverse
  45.     return r
  46. end
  47. def self.from_iscl(x,y)
  48.     x = x.to_s
  49.     r = 0
  50.     x.size.times{|l|
  51.         c = l+1
  52.         a = y**c
  53.         r += a*((to_byte(x[-c]-32)%256).to_i)
  54.     }
  55.     return (r/y).to_i
  56. end
  57. def self.to_int(x,y)
  58.     a = from_is(x,256)
  59.     b = to_is(a,y)
  60.     return b
  61. end
  62. def self.from_int(x,y)
  63.     a = from_is(x,10)
  64.     b = to_is(a,256)
  65.     return b
  66. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement