From b14aa97a2a25cc0bcd258216aef7c70f9d354f1e Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Mon, 27 Mar 2017 15:35:59 +0100 Subject: ASCII: Add hex char to value conversion function. --- utils/ascii.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'utils/ascii.h') diff --git a/utils/ascii.h b/utils/ascii.h index 6f7bf6d9a..e5f9949ff 100644 --- a/utils/ascii.h +++ b/utils/ascii.h @@ -167,6 +167,26 @@ static inline bool ascii_is_hex(char c) ascii_is_af_lower(c)); } +/** + * Convert a hexadecimal character to its value. + * + * \param[in] c Character to convert. + * \return value of character (0-15), or -256 if not a hexadecimal character. + */ +static inline int ascii_hex_to_value(char c) +{ + if (ascii_is_digit(c)) { + return c - '0'; + } else if (ascii_is_af_lower(c)) { + return c - 'a' + 10; + } else if (ascii_is_af_upper(c)) { + return c - 'A' + 10; + } + + /* Invalid hex */ + return -256; +} + /** * Convert an upper case character to lower case. * -- cgit v1.2.3