概要
arduinoでhexdumpしてみた。
写真
サンプルコード
char buf[68];
void hexdump(char * buf0, uint16_t len)
{
static const char hexdigits[] = "0123456789abcdef";
char str[68];
uint16_t i;
if (!len) return;
for (i = 0; i < len; i++)
{
str[((i % 16) * 3) + 0] = hexdigits[buf0[i] >> 4];
str[((i % 16) * 3) + 1] = hexdigits[buf0[i] & 0xf];
str[((i % 16) * 3) + 2] = ' ';
str[(i % 16) + 49] = isprint(buf0[i]) ? buf0[i] : '.';
if ((i + 1) % 16 == 0)
{
str[47] = ' ';
str[48] = ' ';
str[65] = '\0';
sprintf(buf, "%s", str);
Serial.println(buf);
str[0] = ' ';
}
}
if (i % 16 > 0)
{
uint16_t j;
for (j = (i % 16); j < 16; j++)
{
str[(j * 3) + 0] = ' ';
str[(j * 3) + 1] = ' ';
str[(j * 3) + 2] = ' ';
str[j + 49] = ' ';
}
str[47] = ' ';
str[48] = ' ';
str[65] = '\0';
sprintf(buf, "%s", str);
Serial.println(buf);
}
}
void setup()
{
char * src = "<0x0000>0123456789abcdefgEFGHIJK!$%&'()";
Serial.begin(115200);
Serial.println("start");
hexdump(src, 39);
Serial.println("end");
}
void loop()
{
}
