gpt4 book ai didi

swift - 将十六进制转换为 Swift 格式的字符串以保持相同的位数

转载 作者:可可西里 更新时间:2023-11-01 00:57:16 30 4
gpt4 key购买 nike

我试图从数组中的十六进制值创建一个字符串,但只要数组中的十六进制以零开头,它也会在结果字符串中消失。

我使用 String(value:radix:uppercase) 创建字符串。


一个例子:

这是一个数组:[0x13245678, 0x12345678, 0x12345678, 0x12345678]
这给了我字符串:12345678123456781234567812345678 (32 个字符)

但是下面的数组:[0x02345678, 0x12345678, 0x02345678, 0x12345678](注意我用零替换了两个 1)。
给我字符串:234567812345678234567812345678 (30 个字符)


我不确定为什么要删除零。我知道是正确的;如果它在那里,我如何格式化它以保留零?

最佳答案

数字 0x01234567 实际上只是 0x1234567。数字文字中的前导零没有任何意义(除非您将前导 0 用于八进制数字文字)。

不使用 String(value:radix:uppercase),而是使用 String(format:)

let num = 0x1234567
let str = String(format: "%08X", num)

格式说明:

  • 0 表示根据需要用零填充字符串的左端。
  • 8 表示您希望结果的长度为 8 个字符
  • X 表示您希望将数字转换为大写十六进制。如果需要小写十六进制,请使用 x

关于swift - 将十六进制转换为 Swift 格式的字符串以保持相同的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43326617/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com