code: def _long2bytes(n, blocksize=0):
      
  
      # After much testing, this algorithm was deemed to be the fastest.
      s = ''
      pack = struct.pack
      while n > 0:
          ### CHANGED FROM '>I' TO '<I'. (DCG)
          s = pack('<I', n & 0xffffffffL) + s
          ### --------------------------
          n = n >> 32
  
      # Strip off leading zeros.
      for i in range(len(s)):
          if s[i] <> '\000':
              break
      else:
          # Only happens when n == 0.
          s = '\000'
          i = 0
  
      s = s[i:]
  
      # Add back some pad bytes. This could be done more efficiently
      # w.r.t. the de-padding being done above, but sigh...
      if blocksize > 0 and len(s) % blocksize:
          s = (blocksize - len(s) % blocksize) * '\000' + s
  
      return s
docs: Convert a long integer to a byte string.
  
      If optional blocksize is given and greater than zero, pad the front
      of the byte string with binary zeros so that the length is a multiple
      of blocksize.