# ==============================================================================
"""BINHEX : show decimal, binary and hexadecimal representations for integers"""
# ==============================================================================
__author__  = "Christophe Schlick"
__version__ = "0.0" # skeleton version
__date__    = "2015-09-01"
__usage__   = """
User input : <value> [value...] where value:int is given in decimal
App output : show decimal, binary and hexa representation for all values"""
# ==============================================================================
from ezCLI import *
# ------------------------------------------------------------------------------
def dec2bin(value):
  """return the binary representation for a (decimal) integer"""
  digits, binvalue = '01', [] if value else ['0']; #inspect()
  while value:
    binvalue.append(digits[value % 2])
    value //= 2; #inspect()
  binvalue.reverse(); #inspect()
  return '0B' + ''.join(binvalue)
# ,------------------------------------------------------------------------------
def dec2hex(value):
  """return the hexadecimal representation for a (decimal) integer"""
  # TODO
# ------------------------------------------------------------------------------
def parser(command):
  """parse 'command' into integers and apply binary/hexa conversion on them"""
  values = parse(command); #inspect()
  isinteger = [type(value) is int for value in values]; #inspect()
  assert all(isinteger), "all values must be integers"
  return '\n'.join("%s = %s" % (n, n) for n in values)
# ==============================================================================
if __name__ == "__main__":
  userloop(parser, "Enter <value> [value...]")
# ==============================================================================
