Skip to main content

A generic base-conversion library for Python.

Project description

h2. What is baseconv?

baseconv is a generic _base conversion_ library for Python. It allows you to
convert any number between binary, hexadecimal, decimal, octal or any other
base you can define. A base is a method of representing numbers; using two or
more different _words_ you can represent any conceivable number using an
ordered combination of those words. For example, the _decimal_ base is made up
of 10 words: 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9. _Binary_ uses only 0 and 1.

h2. Usage

h3. Installation

To install baseconv, simply pull the repository using @git@ (for more info
consult the "github documentation":, @cd@ into the
directory and run the following command as root:

python install

This will copy to Python's @site-packages@ directory, and you
can then import the library in your code via @import baseconv@.

h3. Using the Library In Your Code

In order to carry out the most common features of base conversion, the library
comes equipped with the pre-defined bases @DECIMAL@, @BINARY@, @HEXADECIMAL@,
@OCTAL@, @ALPHA\_LOWER@, @ALPHA\_UPPER@ and @ALPHA@. This means you can, out
of the box, convert between all of these bases. An example usage case is shown
below; note that numbers are held as instances of the @baseconv.Number@ class,
and bases as @baseconv.Base@ instances. The attributes @decimal@, @base@,
@values@ and @indices@ are all Python _descriptors_; setting or otherwise
changing one will cause the number's other attributes to update. The following
code sample shows how you might use the library in a basic way:

>>> from baseconv import \*
>>> num = BINARY('1010011010') # Create a number
>>> num # Show the representation of a number
Number(BINARY, '1010011010')
>>> num.decimal
>>> num.decimal = 423 # Change a number's decimal value
>>> num # The number's binary value has changed automatically
Number(BINARY, '110100111')
>>> num.base = HEXADECIMAL # Change a number's base
>>> num
Number(HEXADECIMAL, '1A7')
>>> print num # Print a number as a string; also accessible via str(num)
>>> num.values # The sequence of base-words that this number represents
>>> num.values = 'FFC0DE' # Set this numbers values list
>>> num # Number has changed accordingly
>>> num.indices # The decimal value of each word in this number
[15, 15, 12, 0, 13, 14]
>>> num.indices = [1, 10, 7] # Set this number's indices attribute
>>> num
Number(HEXADECIMAL, '1A7')

h2. About the Author

My name is Zachary Voase, and you can get to my personal home page (which has links to all my other pages) "here":

Project details

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page