Каков алгоритм преобразования поплавка базы в поплавок другой базы?

Я хотел бы спросить, если кто-то из вас знает, как это сделать:

Допустим, у меня есть число с плавающей запятой типа 0,56, но с основанием N, и я хочу преобразовать его в число с плавающей запятой с основанием T, как мне этого добиться? Есть формула или что?

Например, если мне нужно преобразовать 0,56 из базы 8 в базу 16, я знаю, что это 0,B8. (я делаю это вручную, конвертируя 0,56 (основание 8) в основание 2 -> 0,101110, а затем группирую биты по 4, начиная с точки с плавающей запятой, поэтому 1011 и 10 (1000) — это B, а 8 — B8).

Но что, если я хочу, например. из базы 8 преобразовать в базу 6 программным способом? Не нужен код, просто нужно понять, как это достигается автоматическим способом.

Спасибо за внимание!


person tonix    schedule 28.08.2014    source источник
comment
Мы здесь не для того, чтобы учить вас математике.   -  person Marc B    schedule 28.08.2014
comment
Хорошо, где я должен опубликовать этот вопрос?   -  person tonix    schedule 28.08.2014


Ответы (1)


Это способ сделать это для всех целых чисел, включая отрицательные основания.

Разделите его на дробные части.

x=number

b=base

n=digits

Loop i:

(x/(ib))%b=n

н_и т.д. п4 п3 п2 п1

Если вы не разделили его на дробные части, то части после десятичной дроби оцениваются с использованием мультипликативной инверсии этой базы.

Если вам нужны дробные или иррациональные основания, я отсылаю вас к этому, но мне еще предстоит выяснить, как заставить его работать с отрицательными основаниями.

https://math.stackexchange.com/questions/1938993/converting-bases/1939925#1939925< /а>

person davdan angelo    schedule 25.09.2016