我有二进制0000010
,它表示为一个int数组。从这个二进制文件中我得到一个Integer
:
let number = Int32([0, 0, 0, 0, 0, 1, 0].reduce(0, combine: {$0*2 + $1}))
// number = 2
但是当我想要反向操作以获得String
:
let binaryString = String(2, radix: 2)
// binaryString = " 10"
因此,如果基数为0,那么基数会削减一些比特,如何再返回5个零呢?
答案 0 :(得分:2)
String构造函数无法知道Integer在>转换之前有多少零位。你必须自己处理。
顺便说一句,Int
也有基数构造函数,用于将字符串转换为Int:
Int("0000010", radix: 2) // Returns 2
答案 1 :(得分:1)
let binaryString = String(2, radix: 2)
let other = String(count: 8 - binaryString.characters.count, repeatedValue: Character("0")) + binaryString