Home | History | Annotate | Line # | Download | only in common
      1 /*
      2  * File:	HexValues.cpp
      3  *
      4  * Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
      5  * See included license file for license details.
      6  */
      7 
      8 #include "HexValues.h"
      9 
     10 bool isHexDigit(char c)
     11 {
     12 	return isdigit(c) || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
     13 }
     14 
     15 //! \return The integer equivalent to \a c.
     16 //! \retval -1 The character \a c is not a hex character.
     17 uint8_t hexCharToInt(char c)
     18 {
     19 	if (c >= '0' && c <= '9')
     20 		return c - '0';
     21 	else if (c >= 'a' && c <= 'f')
     22 		return c - 'a' + 10;
     23 	else if (c >= 'A' && c <= 'F')
     24 		return c - 'A' + 10;
     25 	else
     26 		return static_cast<uint8_t>(-1);
     27 }
     28 
     29 //! \param encodedByte Must point to at least two ASCII hex characters.
     30 //!
     31 uint8_t hexByteToInt(const char * encodedByte)
     32 {
     33 	return (hexCharToInt(encodedByte[0]) << 4) | hexCharToInt(encodedByte[1]);
     34 }
     35