code: def _int2farray(ftype, num, length=None):
      
      if num < 0:
          req_length = clog2(abs(num)) + 1
          objs = _uint2objs(ftype, 2**req_length + num)
      else:
          req_length = clog2(num + 1) + 1
          objs = _uint2objs(ftype, num, req_length)
  
      if length:
          if length < req_length:
              fstr = "overflow: num = {} requires length >= {}, got length = {}"
              raise ValueError(fstr.format(num, req_length, length))
          else:
              sign = objs[-1]
              objs += [sign] * (length - req_length)
  
      return farray(objs)
docs: Convert a signed integer to an farray.