2015-01-26 1 views
1

Я пытаюсь преобразовать целое число в базу -2, но в Ruby .to_s(-2) не принимается. Есть ли у вас какие-либо другие решения для преобразования числа в -2 базы?-2 предложение алгоритма преобразования базы данных

+2

Написать алгоритм, использующий целочисленное деление. [Статья Википедии по этому вопросу] (http://en.wikipedia.org/wiki/Negative_base#Calculation) описывает это довольно хорошо, включая потенциальную ловушку с отрицательными остатками. –

+2

Хммм. -2 до какой мощности равна, скажем, 8? –

+2

@CarySwoveland: 8 представлен в базе -2 как (-2)^4 + (-2)^3 (поэтому соответствующая бит-строка будет 11000, от msb до lsb). –

ответ

1

адаптировано из комментария Mark Dickinson «s:

def negabinary(n) 
    return negabinary(-(n>>1)) + (n & 1).to_s if n != 0 
    return '' 
end 
Смежные вопросы