'Construct an L{SerialNumber} instance.
@param number: An L{int} which will be stored as the modulo
C{number % 2 ^ serialBits}
@type number: L{int}
@param serialBits: The size of the serial number space. The power of two
which results in one larger than the largest integer corresponding
to a serial number value.
@type serialBits: L{int}'

def __init__(self, number, serialBits=32):

    self._serialBits = serialBits
    self._modulo = (2 ** serialBits)
    self._halfRing = (2 ** (serialBits - 1))
    self._maxAdd = ((2 ** (serialBits - 1)) - 1)
    self._number = (int(number) % self._modulo)
