使用String的format方法,把UInt8转成hex,使用02表示2位,不足补0。
extension Array where Element == UInt8 {
var hexString: String {
return self.compactMap { String(format: "%02x", $0).uppercased() }
.joined(separator: "")
使用String的format方法,把UInt8转成hex,使用02表示2位,不足补0。extension Array where Element == UInt8 { var hexString: String { return self.compactMap { String(format: "%02x", $0).uppercased() } .jo...
iOS15字符串格式化缺0补0的写法
-(NSString *)strWithTime:(NSTimeInterval )time {
int minuties = time / 60;
int secound = (int) time % 60;
return [NSString stringWithFormat:@"%02d : %d",minuties,secound];
格式化 歌曲的时间长度的时候, 对于分钟 除出来,不是2位数,一般是10分钟以内的歌曲,做的好,前
// 将 uint8_t 数组转换为十六进制字符串
void uint8_array_to_hex_string(const uint8_t *array, int length, char *output)
for (int i = 0; i < length; i++)
sprintf(output + (i * 2), "%02X", array[i]);
int main(void)
uint8_t data[] = {0x12, 0x34, 0xAB, 0xCD};
int length = sizeof(data) / sizeof(data[0]);
char hex_string[length * 2 + 1]; // 额外一个字节用于存储字符串结束符 '\0'
uint8_array_to_hex_string(data, length, hex_string);
printf("Hex string: %s\n", hex_string);
return 0;
在上述代码中,`uint8_array_to_hex_string` 函数将 `uint8_t` 数组转换为十六进制字符串。该函数使用了 `sprintf` 函数来格式化输出,将每个字节转换为两位的十六进制数,并将结果保存在 `output` 字符串中。
在 `main` 函数中,我们定义了一个 `uint8_t` 类型的数组 `data`,并使用 `sizeof` 运算符计算数组的长度。然后,我们定义了一个足够大的字符数组 `hex_string` 来存储转换后的十六进制字符串。最后,我们调用 `uint8_array_to_hex_string` 函数,并打印转换后的十六进制字符串。
输出结果应该为:`Hex string: 1234ABCD`
请注意,上述代码中没有进行输入的合法性检查,因此你需要确保输入的数组和长度是正确的,并且输出字符数组的大小足够大以容纳转换后的字符串。