c - 在 C 中打印十六进制的前导零

我正在尝试将 MD5 哈希的结果打印到控制台,并且它大部分都在工作。为了确保正确性,我使用了在线 MD5 计算器来比较结果。大多数字符是相同的,但我的中缺少一些字符,它们都是前导零。

让我解释一下。结果是一个 16 字节的 unsigned char *。我逐个打印这些字节。每个字节在屏幕上打印两个字符。但是,如果这两个字符中的第一个字符是零,则它不会打印零。

printk("%x", result);

结果是 unsigned char* 类型。我的格式正确还是遗漏了什么?

最佳答案

使用 "%02x"

这两个意味着您总是希望输出为(至少)两个字符宽。

零表示如果需要填充,则使用零而不是空格。

https://stackoverflow.com/questions/12062916/

相关文章:

javascript - 如何在javascript中将完整日期转换为短日期?

c# - 在 C# 中,将字符串格式化为 XML 的最佳方法是什么?

javascript - 用于在 JavaScript 中格式化数字的正则表达式

php - 在 PHP 中打印货币数字格式

java - Eclipse 在哪里存储首选项?

java - 格式化带前导符号的数字

sql-server - 如何在sql中获得小数点后2位?

c# - 将小数格式化为两位或整数

c - 'printf' 在 C 中带有前导零

.net - 格式化 LINQ 查询的最佳方法