Forum: PC Hard- und Software 20Stellen Dez zu Hex


von tex (Gast)


Lesenswert?

Hallo Forum,
kennt jemand ein Programm mit dem sich ohne viel Aufwand 300 20-stellige 
Dezimalzahlen in Hex wandeln lassen?

OO stirbt schon bei der Dezimalzahl ab und hex darf auch nicht mehr als 
10 Stellen haben.
Danke für die Mühe
tex

von reinhard (Gast)


Lesenswert?

python

hex(12345678901234567890)

>> '0xab54a98ceb1f0ad2L'

von Mark B. (markbrandis)


Lesenswert?

Die Konvertierung an sich kann z.B. Wolfram Alpha:
http://www.wolframalpha.com/input/?i=92048204820433403940+in+hex

Wenn Du ein Programm schreiben willst, dass beliebig lange Zahlen 
verarbeiten kann, dann lautet das Zauberwort hierzu: Arbitrary-precision 
arithmetic
http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic

von Peter II (Gast)


Lesenswert?

reinhard schrieb:
> python
>
> hex(12345678901234567890)
>
>>> '0xab54a98ceb1f0ad2L'

was hat das L dort zu suchen?

Windows calc liefert auch etwas anderes.

von Jon D. (shee2e)


Lesenswert?

Hallo,

> python
>
> hex(12345678901234567890)
>
>>> '0xab54a98ceb1f0ad2L'

das L bedeutet nur, dass es sich um eine Long Int handelt.
und bei mir kommt das gleiche wie bei Mark Brandis raus.
MfG
shee2e

von Εrnst B. (ernst)


Lesenswert?

perl mit "Math::BigInt":
1
use Math::BigInt;
2
my $x=new Math::BigInt('1234567890123456789012345678901234567890');
3
$x*=13;
4
print $x," ==> ",$x->as_hex,"\n";

gibt aus:

16049382571604938257160493825716049382570 ==> 
0x2f2a36a5facb2b6060c590daa879338caa

Für das kürzere Beispiel von Oben:

12345678901234567890 ==> 0xab54a98ceb1f0ad2

: Bearbeitet durch User
von rere (Gast)


Lesenswert?

Peter II schrieb:
> reinhard schrieb:
>> python
>>
>> hex(12345678901234567890)
>>
>>>> '0xab54a98ceb1f0ad2L'
>
> was hat das L dort zu suchen?
>
> Windows calc liefert auch etwas anderes.
Das ist für calc.exe wohl einfach eine Stelle zuviel.

von Dominik J. (d-r-j)


Lesenswert?

Peter II schrieb:
> reinhard schrieb:
>> python
>>
>> hex(12345678901234567890)
>>
>>>> '0xab54a98ceb1f0ad2L'
>
> was hat das L dort zu suchen?
>
> Windows calc liefert auch etwas anderes.



Bei mir rechnet der Windows Rechner mit maximal 64 bit.
Das Ergibt nur 19 Stellen dezimal (9223372036854775807)
da mit Vorzeichen.

Mehr als 19 Stellen nimmt er einfach nicht an.
System: Win7 64Bit

von Yalu X. (yalu) (Moderator)


Lesenswert?

bc kann das natürlich auch:
1
obase=16; 12345678901234567890

liefert
1
AB54A98CEB1F0AD2

Folgendes Shell-Kommando konvertiert viele Zahlen, die in der Datei
zahlen stehen (1 Zahl/Zeile):
1
(echo obase=16; cat zahlen) | bc

von test (Gast)


Lesenswert?

Yalu X. schrieb:
> (echo obase=16; cat zahlen) | bc

Und wir haben einen Gewinner. :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.