📄 util.c
字号:
#include <stdio.h>#include "util.h"#define CHAR_BASE(c) (((c) >= '0' && (c) <= '9')\ ? '0'\ : (\ ((c) >= 'A' && (c) <= 'F')\ ? ('A' - 0x0A)\ : (\ ((c) >= 'a' && (c) <= 'f')\ ? ('a' - 0x0a)\ : 0x00\ )\ )\ )\int str2hex(const char* s, char* buf){ int i; char b1, b2; for (i = 0; *s; s += 2, ++i) { b1 = CHAR_BASE(*s); b2 = CHAR_BASE(*(s + 1)); if (b1 == 0x00 || b2 == 0x00) return -1; *buf++ = ((*s - b1) << 4) | (*(s + 1) - b2); } return i;}void fdumphex(FILE* f, const unsigned char* buf, size_t len){ unsigned i; const unsigned char* p = (const unsigned char*)buf; for (i = 0; i < (len / 16) * 16; i += 16) { fprintf(f, "%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", p[i], p[i + 1], p[i + 2], p[i + 3], p[i + 4], p[i + 5], p[i + 6], p[i + 7], p[i + 8], p[i + 9], p[i + 10], p[i + 11], p[i + 12], p[i + 13], p[i + 14], p[i + 15]); } for (; i < len; ++i) fprintf(f, "%02x ", p[i]); if (len % 16) fputc('\n', f);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -