标签:
1 int buffer_append_long_hex(buffer *b, unsigned long value) { 2 char *buf; 3 int shift = 0; 4 unsigned long copy = value; 5 6 while (copy) { 7 copy >>= 4; 8 shift++; 9 } 10 if (shift == 0) 11 shift++; 12 if (shift & 0x01) 13 shift++; 14 15 buffer_prepare_append(b, shift + 1); 16 if (b->used == 0) 17 b->used++; 18 buf = b->ptr + (b->used - 1); 19 b->used += shift; 20 21 shift <<= 2; 22 while (shift > 0) { 23 shift -= 4; 24 *(buf++) = hex_chars[(value >> shift) & 0x0F]; 25 } 26 *buf = ‘\0‘; 27 28 return 0; 29 }
标签:
原文地址:http://www.cnblogs.com/sangzaohaishui/p/5249024.html