// Common/StringToInt.h #ifndef ZIP7_INC_COMMON_STRING_TO_INT_H #define ZIP7_INC_COMMON_STRING_TO_INT_H #include "MyTypes.h" UInt32 ConvertStringToUInt32(const char *s, const char **end) throw(); UInt64 ConvertStringToUInt64(const char *s, const char **end) throw(); UInt32 ConvertStringToUInt32(const wchar_t *s, const wchar_t **end) throw(); UInt64 ConvertStringToUInt64(const wchar_t *s, const wchar_t **end) throw(); // Int32 ConvertStringToInt32(const char *s, const char **end) throw(); Int32 ConvertStringToInt32(const wchar_t *s, const wchar_t **end) throw(); UInt32 ConvertOctStringToUInt32(const char *s, const char **end) throw(); UInt64 ConvertOctStringToUInt64(const char *s, const char **end) throw(); UInt32 ConvertHexStringToUInt32(const char *s, const char **end) throw(); UInt64 ConvertHexStringToUInt64(const char *s, const char **end) throw(); #define Z7_PARSE_HEX_DIGIT(c, err_op) \ { c -= '0'; \ if (c > 9) { \ c -= 'A' - '0'; \ c &= ~0x20u; \ if (c > 5) { err_op } \ c += 10; \ } \ } const char *FindNonHexChar(const char *s) throw(); // in: (dest != NULL) // returns: pointer in dest array after last written byte Byte *ParseHexString(const char *s, Byte *dest) throw(); #endif