Gee*_*e.E 3 string int hex swift
我试图从数组中的十六进制值创建一个字符串,但是每当数组中的十六进制以零开头时,它也会在结果字符串中消失。
我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)
Run Code Online (Sandbox Code Playgroud)
格式说明:
0
需要用零填充字符串左端的方法。8
你想要得到的结果是8个字符长手段X
你想要装置的数量转换为大写的十六进制。x
如果您想要小写十六进制,请使用。