code: def itn(n, digits=8, format=DEFAULT_FORMAT):
      
      # POSIX 1003.1-1988 requires numbers to be encoded as a string of
      # octal digits followed by a null-byte, this allows values up to
      # (8**(digits-1))-1. GNU tar allows storing numbers greater than
      # that if necessary. A leading 0o200 byte indicates this particular
      # encoding, the following digits-1 bytes are a big-endian
      # representation. This allows values up to (256**(digits-1))-1.
      if 0 <= n < 8 ** (digits - 1):
          s = ("%0*o" % (digits - 1, n)).encode("ascii") + NUL
      else:
          if format != GNU_FORMAT or n >= 256 ** (digits - 1):
              raise ValueError("overflow in number field")
  
          if n < 0:
              # XXX We mimic GNU tar's behaviour with negative numbers,
              # this could raise OverflowError.
              n = struct.unpack("L", struct.pack("l", n))[0]
  
          s = bytearray()
          for i in range(digits - 1):
              s.insert(0, n & 0o377)
              n >>= 8
          s.insert(0, 0o200)
      return s
docs: Convert a python number to a number field.