Swift。从整数中获取二进制字符串
Swift. Get binary string from an integer
我有二进制 0000010
,它表示为一个整数数组。从这个二进制文件我得到一个 Integer
:
let number = Int32([0, 0, 0, 0, 0, 1, 0].reduce(0, combine: {[=13=]*2 + }))
// 数 = 2
但是当我想逆运算得到一个String
:
let binaryString = String(2, radix: 2)
// binaryString = "10"
所以如果 radix 为 0,那么它似乎会削减一些位,如何 return 再增加 5 个零?
字符串构造函数无法知道整数在转换之前有多少个零位。你必须自己处理。
顺便说一下,Int
也有基数构造函数,用于将字符串转换为 Int:
Int("0000010", radix: 2) // Returns 2
let binaryString = String(2, radix: 2)
let other = String(count: 8 - binaryString.characters.count, repeatedValue: Character("0")) + binaryString
Swift 5
var binaryString = String(2, radix: 2)
binaryString = String(repeating: "0", count: 8 - binaryString.count) + binaryString
我有二进制 0000010
,它表示为一个整数数组。从这个二进制文件我得到一个 Integer
:
let number = Int32([0, 0, 0, 0, 0, 1, 0].reduce(0, combine: {[=13=]*2 + }))
// 数 = 2
但是当我想逆运算得到一个String
:
let binaryString = String(2, radix: 2)
// binaryString = "10"
所以如果 radix 为 0,那么它似乎会削减一些位,如何 return 再增加 5 个零?
字符串构造函数无法知道整数在转换之前有多少个零位。你必须自己处理。
顺便说一下,Int
也有基数构造函数,用于将字符串转换为 Int:
Int("0000010", radix: 2) // Returns 2
let binaryString = String(2, radix: 2)
let other = String(count: 8 - binaryString.characters.count, repeatedValue: Character("0")) + binaryString
Swift 5
var binaryString = String(2, radix: 2)
binaryString = String(repeating: "0", count: 8 - binaryString.count) + binaryString