xoutil.bases
- Numeric base 32 and base 64 integer representations¶
Integer encoding and decoding in different bases.
-
xoutil.bases.
int2str
(number, base=62)[source]¶ Return the string representation of an integer using a base.
Parameters: base (Either an integer or a string with a custom table.) – The base. Examples:
>>> int2str(65535, 16) 'ffff' >>> int2str(65535) 'h31' >>> int2str(65110208921, 'merchise') 'ehimseiemsce' >>> int2str(651102, 2) '10011110111101011110'
-
xoutil.bases.
str2int
(src, base=62)[source]¶ Return the integer decoded from a string representation using a base.
Parameters: base (Either an integer or a string with a custom table.) – The base. Examples:
>>> str2int('ffff', 16) 65535 >>> str2int('1c', 16) == int('1c', 16) True >>> base = 'merchise' >>> number = 65110208921 >>> str2int(int2str(number, base), base) == number False >>> base = 32 >>> str2int(int2str(number, base), base) == number True
-
class
xoutil.bases.
B32
[source]¶ Handles base-32 conversions.
In base 32, each 5-bits chunks are represented by a single “digit”. Digits comprises all symbols in 0..9 and a..v.
>>> B32.inttobase(32) == '10' True
>>> B32.basetoint('10') 32
-
class
xoutil.bases.
B64
[source]¶ Handles [a kind of] base 64 conversions.
This is not standard base64, but a reference-friendly base 64 to help the use case of generating a short reference.
In base 64, each 6-bits chunks are represented by a single “digit”. Digits comprises all symbols in 0..9, a..z, A..Z and the three symbols: ()[.
>>> B64.inttobase(64) == '10' True
>>> B64.basetoint('10') 64
Warning
In this base, letters are case sensitive:
>>> B64.basetoint('a') 10 >>> B64.basetoint('A') 36