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