
###############################################################################

def hex2dec( hex ):
	return str( int( hex, 16 ) )

###############################################################################

def hex2bin( hex ):

	nibbles =	{
				"0":"0000", "1":"0001", "2":"0010", "3":"0011",
				"4":"0100", "5":"0101", "6":"0110", "7":"0111",
				"8":"1000", "9":"1001", "A":"1010", "B":"1011",
				"C":"1100", "D":"1101", "E":"1110", "F":"1111"
				}

	# Check for '0x' in front of the string & remove it
	if hex[:2] == "0x":
		hex = hex[2:]

	try:
		return str().join([nibbles[c] for c in hex.upper()]).lstrip("0")

	except KeyError:
		print "ERROR --> Non-hexadecimal character specified."

###############################################################################

def dec2hex( dec ):
	result = hex( int( dec ) )
	return result[:2] + result[2:].upper()

###############################################################################

def dec2bin( dec ):
	return hex2bin( dec2hex( dec ) )

###############################################################################

def bin2dec( bin ):
	return str( int( bin, 2 ) )

###############################################################################

def bin2hex( bin ):
	return dec2hex( bin2dec( bin ) )

###############################################################################