使用 stringWithFormat 获取一个 4 字节的十六进制字符串

Get a 4 bytes hex string with stringWithFormat

到目前为止,我有这个代码:

NSString *hex = [NSString stringWithFormat:@"%lX", crc32Result];

将 int 值格式化为十六进制(字符串)值。

但是现在,我想总是用 "stringWithFormat" 得到一个 4 字节的十六进制。我的意思是,当结果是,例如:"DFF241",那么我希望它输出“00DFF241”。如果是 "F241",我希望输出为“0000F241”。

"stringWithFormat"可以吗?

是的,是:

NSString *hex = [NSString stringWithFormat:@"%08lX", crc32Result];

关于 0 标志:

For d, i, o, u, x, X, a, A, e, E, f, F, g, and G conversion specifiers, leading zeros (following any indication of sign or base) are used to pad to the field width; no space padding is performed.