Hi Leutz,
ich habe hier recht schwerwiegende Perfomanzprobleme mit einem Programm von mir.
Dabei nutze ich den BigInteger um sehr grosse Nummern (128-160 Bit) zu speichern.
Wichtig ist dabei der Prozess der gemeinsamen Prefixlänge von zwei Nummern A und B.
Ich möchte immer zu einer gegebenen Basis b die gemeinsame Prefixlänge errechnen.
Beispiel:
A ist 3D5A10
B ist 3DA201
Beiden Nummern sind offensichtlich in der Basis 16, also HEX.
Wie man sieht sind die ersten beiden Zeichen 3 und D gleich, also ist die gemeinsame Prefixlänge gleich 2.
Wie kann ich nun effizient mit BigInteger dies errechnen?
Ein Weg wäre die toString(int radix) Methode von BigInteger. Aber die soll angeblich sehr schlecht sein.
BigInteger bietet ja Bitoperationen.
Weiss einer wie man die Prefixlänge in einer gegebenen Basis b zwischen zwei Nummern errechnet.
Wäre sehr dankbar.
ich habe hier recht schwerwiegende Perfomanzprobleme mit einem Programm von mir.
Dabei nutze ich den BigInteger um sehr grosse Nummern (128-160 Bit) zu speichern.
Wichtig ist dabei der Prozess der gemeinsamen Prefixlänge von zwei Nummern A und B.
Ich möchte immer zu einer gegebenen Basis b die gemeinsame Prefixlänge errechnen.
Beispiel:
A ist 3D5A10
B ist 3DA201
Beiden Nummern sind offensichtlich in der Basis 16, also HEX.
Wie man sieht sind die ersten beiden Zeichen 3 und D gleich, also ist die gemeinsame Prefixlänge gleich 2.
Wie kann ich nun effizient mit BigInteger dies errechnen?
Ein Weg wäre die toString(int radix) Methode von BigInteger. Aber die soll angeblich sehr schlecht sein.
BigInteger bietet ja Bitoperationen.
Weiss einer wie man die Prefixlänge in einer gegebenen Basis b zwischen zwei Nummern errechnet.
Wäre sehr dankbar.