1*f6dc9357SAndroid Build Coastguard Worker // Common/IntToString.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_COMMON_INT_TO_STRING_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_COMMON_INT_TO_STRING_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "MyTypes.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker // return: the pointer to the "terminating" null character after written characters 9*f6dc9357SAndroid Build Coastguard Worker 10*f6dc9357SAndroid Build Coastguard Worker char * ConvertUInt32ToString(UInt32 value, char *s) throw(); 11*f6dc9357SAndroid Build Coastguard Worker char * ConvertUInt64ToString(UInt64 value, char *s) throw(); 12*f6dc9357SAndroid Build Coastguard Worker 13*f6dc9357SAndroid Build Coastguard Worker wchar_t * ConvertUInt32ToString(UInt32 value, wchar_t *s) throw(); 14*f6dc9357SAndroid Build Coastguard Worker wchar_t * ConvertUInt64ToString(UInt64 value, wchar_t *s) throw(); 15*f6dc9357SAndroid Build Coastguard Worker void ConvertInt64ToString(Int64 value, char *s) throw(); 16*f6dc9357SAndroid Build Coastguard Worker void ConvertInt64ToString(Int64 value, wchar_t *s) throw(); 17*f6dc9357SAndroid Build Coastguard Worker 18*f6dc9357SAndroid Build Coastguard Worker void ConvertUInt64ToOct(UInt64 value, char *s) throw(); 19*f6dc9357SAndroid Build Coastguard Worker 20*f6dc9357SAndroid Build Coastguard Worker extern const char k_Hex_Upper[16]; 21*f6dc9357SAndroid Build Coastguard Worker extern const char k_Hex_Lower[16]; 22*f6dc9357SAndroid Build Coastguard Worker 23*f6dc9357SAndroid Build Coastguard Worker #define GET_HEX_CHAR_UPPER(t) (k_Hex_Upper[t]) 24*f6dc9357SAndroid Build Coastguard Worker #define GET_HEX_CHAR_LOWER(t) (k_Hex_Lower[t]) 25*f6dc9357SAndroid Build Coastguard Worker /* 26*f6dc9357SAndroid Build Coastguard Worker // #define GET_HEX_CHAR_UPPER(t) ((char)(((t < 10) ? ('0' + t) : ('A' + (t - 10))))) 27*f6dc9357SAndroid Build Coastguard Worker static inline unsigned GetHex_Lower(unsigned v) 28*f6dc9357SAndroid Build Coastguard Worker { 29*f6dc9357SAndroid Build Coastguard Worker const unsigned v0 = v + '0'; 30*f6dc9357SAndroid Build Coastguard Worker v += 'a' - 10; 31*f6dc9357SAndroid Build Coastguard Worker if (v < 'a') 32*f6dc9357SAndroid Build Coastguard Worker v = v0; 33*f6dc9357SAndroid Build Coastguard Worker return v; 34*f6dc9357SAndroid Build Coastguard Worker } 35*f6dc9357SAndroid Build Coastguard Worker static inline char GetHex_Upper(unsigned v) 36*f6dc9357SAndroid Build Coastguard Worker { 37*f6dc9357SAndroid Build Coastguard Worker return (char)((v < 10) ? ('0' + v) : ('A' + (v - 10))); 38*f6dc9357SAndroid Build Coastguard Worker } 39*f6dc9357SAndroid Build Coastguard Worker */ 40*f6dc9357SAndroid Build Coastguard Worker 41*f6dc9357SAndroid Build Coastguard Worker 42*f6dc9357SAndroid Build Coastguard Worker void ConvertUInt32ToHex(UInt32 value, char *s) throw(); 43*f6dc9357SAndroid Build Coastguard Worker void ConvertUInt64ToHex(UInt64 value, char *s) throw(); 44*f6dc9357SAndroid Build Coastguard Worker void ConvertUInt32ToHex8Digits(UInt32 value, char *s) throw(); 45*f6dc9357SAndroid Build Coastguard Worker // void ConvertUInt32ToHex8Digits(UInt32 value, wchar_t *s) throw(); 46*f6dc9357SAndroid Build Coastguard Worker 47*f6dc9357SAndroid Build Coastguard Worker // use RawLeGuid only for RAW bytes that contain stored GUID as Little-endian. 48*f6dc9357SAndroid Build Coastguard Worker char *RawLeGuidToString(const Byte *guid, char *s) throw(); 49*f6dc9357SAndroid Build Coastguard Worker char *RawLeGuidToString_Braced(const Byte *guid, char *s) throw(); 50*f6dc9357SAndroid Build Coastguard Worker 51*f6dc9357SAndroid Build Coastguard Worker void ConvertDataToHex_Lower(char *dest, const Byte *src, size_t size) throw(); 52*f6dc9357SAndroid Build Coastguard Worker void ConvertDataToHex_Upper(char *dest, const Byte *src, size_t size) throw(); 53*f6dc9357SAndroid Build Coastguard Worker 54*f6dc9357SAndroid Build Coastguard Worker #endif 55