md5算法加密后的字符串长度为啥是固定的16字节

比如我加密完之后输出的是这么个东西:741fc6b1878e208346359af502dd11c5

那么上述字符串的大小为啥是16字节的呢?

最后在将加密后的字符串保存进md中时是这样写入的:

sprintf(&result[i * 2], "%02x", md[i]);

上述这个02x那又是什么意思呢?

%x代表的意思是16进制。02的意思是域宽 就是2位