📄 hexdump.h
字号:
/* Minimal - the simplest thing that could possibly work
* Copyright (C) 2007 Jay Freeman (saurik)
*/
/*
* Redistribution and use in source and binary
* forms, with or without modification, are permitted
* provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the
* above copyright notice, this list of conditions
* and the following disclaimer.
* 2. Redistributions in binary form must reproduce the
* above copyright notice, this list of conditions
* and the following disclaimer in the documentation
* and/or other materials provided with the
* distribution.
* 3. The name of the author may not be used to endorse
* or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef MINIMAL_HEXDUMP_H
#define MINIMAL_HEXDUMP_H
#include "minimal/stdlib.h"
_disused static char hexchar(uint8_t value) {
return value < 0x20 || value >= 0x80 ? '.' : value;
}
#define HexWidth_ 12
_disused static void hexdump(const char *mark, const uint8_t *data, size_t size) {
size_t i = 0, j;
while (i != size) {
if (i % HexWidth_ == 0)
printf("[%s] 0x%.3zx:", mark, i);
printf(" %.2x", data[i]);
if (++i % HexWidth_ == 0) {
printf(" ");
for (j = i - HexWidth_; j != i; ++j)
printf("%c", hexchar(data[j]));
printf("\n");
}
}
if (i % HexWidth_ != 0) {
for (j = i % HexWidth_; j != HexWidth_; ++j)
printf(" ");
printf(" ");
for (j = i / HexWidth_ * HexWidth_; j != i; ++j)
printf("%c", hexchar(data[j]));
printf("\n");
}
}
#endif/*MINIMAL_HEXDUMP_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -