swift, ios. Как перевести отрицательное число в двоичную систему счисление?
Всем привет, подскажите пожалуйста как перевести отрицательное число в двоичную, восьмеричную или в шестнадцатеричную систему счисления? В интернете нашел пару примеров, но они не работают с отрицательными числами
let y = Int("-127", radix: 8)
print (y!) //-87 - неправильно!!!
let binary = String(1022, radix: 2)
print("Binary : \(binary)") // Binary : 1111111110
let binary = String(-1, radix: 2)
print("Binary : \(binary)") // Binary : -1 ---- неправильно!
на языке джава есть такая функция
Integer.toBinaryString(-1) //11111111111111111111111111111111 - правильно
Есть ли на языке свифт похожая функция? Заранее Благодарю
Ответы (1 шт):
Автор решения: VAndrJ
→ Ссылка
К сожалению, некоторые подобные вещи в Swift несколько костыльные. Написал extension под Ваш вариант правильно:
extension Int {
var binaryRepresentation: String {
(0..<bitWidth).map({ String((self >> $0) & 1) }).reversed().joined()
}
}
(-1).binaryRepresentation // -> 1111111111111111111111111111111111111111111111111111111111111111
(-10).binaryRepresentation // -> 1111111111111111111111111111111111111111111111111111111111110110