xref: /aosp_15_r20/external/lzma/CPP/Common/IntToString.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
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