我们可以说周末日活跃或不活跃。我需要使用Integer来表示我标记为活动或非活动的系统,以检索此整数,我需要使用数组[1, 1, 1, 1, 1, 1, 1]
。因此,如果你看到这个数组的整个星期都标记为有效,并且在十六进制中它是0000007F
。
如果我使用[0, 0, 0, 0, 0, 0, 1]
此字符串,则表示十六进制= 00000001
。所以我的问题是如何从数组创建十六进制,然后将其形成为Integer
。因此,对于0000007F
,它应该是127。
我认为应该是这样的:
让array = [1,1,1,1,1,1,1] let hexadecimal = array.toHexadecimal let intNumber = hexadecimal.toInt
print(intNumber)//打印127
另外我猜它可以是一个像[0,1,1,1,1,0,1]这样的整数的数组,这意味着星期一和星期三到星期六(包括)都是活跃的日子。
答案 0 :(得分:1)
您可以使用reduce方法来总结二进制数组(受此answer启发)并使用String(radix :)初始化程序将整数转换为六进制字符串:
Swift 2.3•Xcode 8 GM
let binaryArray = [1, 1, 1, 1, 1, 1, 1]
//
let integerValue = binaryArray.reduce(0, combine: {$0*2 + $1})
let hexaString = String(integerValue, radix: 16) // "7f"
Swift 3•Xcode 8 GM
let binaryArray = [1, 1, 1, 1, 1, 1, 1]
let integerValue = binaryArray.reduce(0, {$0*2 + $1})
let hexaString = String(integerValue, radix: 16) // "7f"