0

あなたの誰かがこれを達成する方法を知っているかどうか尋ねたいです:

0.56のような floatがあるとしますが、基数 N で、それを基数 Tの float に変換したいのですが、どうすればそれを達成できますか? 公式か何かあるの?

たとえば、0.56を基数8から基数16に変換する必要がある場合、それが0.B8であることはわかっています(手動で0.56 (基数 8) を基数 2 -> 0.101110 に変換してから、ビットを 4 から始まるようにグループ化します)浮動小数点から、したがって 1011 & 10 (1000) は B および 8、したがって B8) です。

しかし、たとえば base 8 から base 6 にプログラムで変換したい場合はどうすればよいでしょうか? コードは必要ありません。これが自動的にどのように達成されるかを理解する必要があります。

注目してくれてありがとう!

4

1 に答える 1

2

それらは、負の基数を含むすべての整数に対してこれを行う方法です。

それを小数部分に分けます。

x=number

b=base

n=digits

Loop i:

(x/(ib))%b=n

n_etc. n4 n3 n2 n1

小数部分に分割しなかった場合、小数の後の部分は、その底の乗法逆数を使用して評価されます。

分数または無理数の基数が必要な場合は、これを参照してください。ただし、負の基数に対して機能させる方法はまだわかりません.

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

于 2016-09-25T14:15:19.247 に答える