将十六进制转换为Swift格式的字符串以保持相同的位数
我试图从数组中的十六进制值创建一个字符串,但每当数组中的十六进制以零开头时,它也会在结果字符串中消失 我使用将十六进制转换为Swift格式的字符串以保持相同的位数,swift,string,int,hex,Swift,String,Int,Hex,我试图从数组中的十六进制值创建一个字符串,但每当数组中的十六进制以零开头时,它也会在结果字符串中消失 我使用字符串(值:基数:大写)创建字符串 例如: 这是一个数组:[0x13245678,0x12345678,0x12345678,0x12345678] 这给了我一个字符串:1234567881234567812345678812345678(32个字符) 但是下面的数组:[0x02345678,0x12345678,0x02345678,0x12345678](注意,我用零替换了两个1。
字符串(值:基数:大写)
创建字符串
例如: 这是一个数组:
[0x13245678,0x12345678,0x12345678,0x12345678]
这给了我一个字符串:
1234567881234567812345678812345678
(32个字符)
但是下面的数组:[0x02345678,0x12345678,0x02345678,0x12345678]
(注意,我用零替换了两个1
。给我字符串:
23456781234567834567812345678
(30个字符)
我不知道为什么它会删除零。我知道这个值是正确的;如果它存在,我如何格式化它以保持零?数字
0x01234567
实际上就是0x1234567
。数字文字中的前导零没有任何意义(除非您将前导0用于八进制数字文字)
不要使用字符串(值:基数:大写)
,而是使用字符串(格式:)
格式说明:
表示根据需要用零填充字符串的左端0
表示希望结果长度为8个字符8
表示您希望将数字转换为大写十六进制。如果需要小写十六进制,请使用X
x
let num = 0x1234567
let str = String(format: "%08X", num)