Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将十六进制转换为Swift格式的字符串以保持相同的位数_Swift_String_Int_Hex - Fatal编程技术网

将十六进制转换为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

啊,太好了!我就是在找这个。我发现了苹果的String格式说明符,但不知道我需要的代码>0 < /Cord>。但是String(Frase:::)需要导入基础,其中String(^:基数:大写:)没有。
let num = 0x1234567
let str = String(format: "%08X", num)