write_hex.c 460 B

1234567891011121314151617
  1. /* See LICENSE of license details. */
  2. #include <stdint.h>
  3. #include <unistd.h>
  4. void write_hex(int fd, unsigned long int hex) {
  5. uint8_t ii;
  6. uint8_t jj;
  7. char towrite;
  8. write(fd, "0x", 2);
  9. for (ii = sizeof(unsigned long int) * 2; ii > 0; ii--) {
  10. jj = ii - 1;
  11. uint8_t digit = ((hex & (0xF << (jj * 4))) >> (jj * 4));
  12. towrite = digit < 0xA ? ('0' + digit) : ('A' + (digit - 0xA));
  13. write(fd, &towrite, 1);
  14. }
  15. }