1 // Common/StringToInt.h 2 3 #ifndef ZIP7_INC_COMMON_STRING_TO_INT_H 4 #define ZIP7_INC_COMMON_STRING_TO_INT_H 5 6 #include "MyTypes.h" 7 8 UInt32 ConvertStringToUInt32(const char *s, const char **end) throw(); 9 UInt64 ConvertStringToUInt64(const char *s, const char **end) throw(); 10 UInt32 ConvertStringToUInt32(const wchar_t *s, const wchar_t **end) throw(); 11 UInt64 ConvertStringToUInt64(const wchar_t *s, const wchar_t **end) throw(); 12 13 // Int32 ConvertStringToInt32(const char *s, const char **end) throw(); 14 Int32 ConvertStringToInt32(const wchar_t *s, const wchar_t **end) throw(); 15 16 UInt32 ConvertOctStringToUInt32(const char *s, const char **end) throw(); 17 UInt64 ConvertOctStringToUInt64(const char *s, const char **end) throw(); 18 19 UInt32 ConvertHexStringToUInt32(const char *s, const char **end) throw(); 20 UInt64 ConvertHexStringToUInt64(const char *s, const char **end) throw(); 21 22 #define Z7_PARSE_HEX_DIGIT(c, err_op) \ 23 { c -= '0'; \ 24 if (c > 9) { \ 25 c -= 'A' - '0'; \ 26 c &= ~0x20u; \ 27 if (c > 5) { err_op } \ 28 c += 10; \ 29 } \ 30 } 31 32 const char *FindNonHexChar(const char *s) throw(); 33 34 // in: (dest != NULL) 35 // returns: pointer in dest array after last written byte 36 Byte *ParseHexString(const char *s, Byte *dest) throw(); 37 38 #endif 39