1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- def euklid(b, Z):
- """
- Euclids algorithm to change the basis.
- Returns
- -------
- dict
- A dictionary mapping the i-th position of the new number to its value,
- where higher numbers are more significant.
- Examples
- --------
- >>> euklid(3, 5)
- {1: 1, 0: 2}
- """
- p = 0
- while b**p <= Z:
- p = p+1
- i = p - 1
- y = {}
- while Z != 0 and i > -5:
- y[i] = Z // b**i
- R = Z % b**i
- Z = R
- i = i - 1
- return y
- if __name__ == "__main__":
- r = euklid(16, 15741.233)
- print("Result:")
- for key in sorted(r.iterkeys(), reverse=True):
- print "%s: %s" % (key, r[key])
|