code: def ev_bias(seq):
      
      if len(seq) < 4:
          return ''
      if seq == [252, 1, 6, 0]:
          return '-2/3 EV'
      if seq == [253, 1, 6, 0]:
          return '-1/2 EV'
      if seq == [254, 1, 6, 0]:
          return '-1/3 EV'
      if seq == [0, 1, 6, 0]:
          return '0 EV'
      if seq == [2, 1, 6, 0]:
          return '+1/3 EV'
      if seq == [3, 1, 6, 0]:
          return '+1/2 EV'
      if seq == [4, 1, 6, 0]:
          return '+2/3 EV'
          # Handle combinations not in the table.
      a = seq[0]
      # Causes headaches for the +/- logic, so special case it.
      if a == 0:
          return '0 EV'
      if a > 127:
          a = 256 - a
          ret_str = '-'
      else:
          ret_str = '+'
      step = seq[2]  # Assume third value means the step size
      whole = a / step
      a = a % step
      if whole != 0:
          ret_str = '%s%s ' % (ret_str, str(whole))
      if a == 0:
          ret_str += 'EV'
      else:
          r = Ratio(a, step)
          ret_str = ret_str + r.__repr__() + ' EV'
      return ret_str
docs: First digit seems to be in steps of 1/6 EV.
      Does the third value mean the step size?  It is usually 6,
      but it is 12 for the ExposureDifference.
      Check for an error condition that could cause a crash.
      This only happens if something has gone really wrong in
      reading the Nikon MakerNote.
      http://tomtia.plala.jp/DigitalCamera/MakerNote/index.asp