clemens
Goto Top

Dezimalzahl in Hexadezimalzahl umwandeln?

Wie wandele ich in einem Batch Skript eine Dezimalzahl in eine Hexadezimalzahl um?

Ich habe vor, ein Batch Skript zu schreiben, welches einen den Eingaben entsprechenden Registrierungsschlüssel ausgibt, der dann entweder automatisiert oder manuell eingebunden wird. Das Einbinden der Registrierungsdatei wollte ich der Einfachheit halber mit "regedit.exe /s regdatei.reg" durchführen. Jedoch müssen die Werte in der Registrierungsdatei in hexadezimalen Werten angegeben werden. Die Eingabe im Batch Skript sollte aber natürlich im Dezimalsystem erfolgen.

Wie kann ich nun die Eingabe in eine Hexadezimalzahl umwandeln? Geht das auch mit dem SET befehl? Die Umwandlung von hex nach dez kann SET ja (mit SET /A 0x...) aber andersrum steh ich irgendwie aufm Schlauch...

Weiß jemand Rat?

Content-Key: 20556

Url: https://administrator.de/contentid/20556

Printed on: April 18, 2024 at 12:04 o'clock

Member: FaBMiN
FaBMiN Nov 29, 2005 at 07:51:51 (UTC)
Goto Top
http://de.selfhtml.org/helferlein/dezhex.htm


Umwandlung von Dezimalzahlen in Hexadezimalzahlen

Eine Möglichkeit, eine Zahl des Dezimalsystems in eine Zahl des Hexadezimalsystems umzurechnen, ist die Betrachtung der Divisionsreste, die entstehen, wenn die Zahl durch die Basis 16 geteilt wird.

Im Beispiel der 127810 sähe das so aus:

1278 : 16 = 79 Rest 14 (= E)
79 : 16 = 4 Rest 15 (= F)
4 : 16 = 0 Rest 4

Von unten nach oben gelesen ergibt sich die Hexadezimalzahl 4FE..
[Bearbeiten]

Umwandlung von Hexadezimalzahlen in Dezimalzahlen

Um eine Hexadezimalzahl in eine Dezimalzahl umzuwandeln, muss man die einzelnen Ziffern mit der jeweiligen Potenz der Basis multiplizieren. Der Exponent der Basis entspricht der Stelle der Ziffer, wobei der Zahl vor dem Komma eine Null zugeordnet wird. Dazu muss man allerdings noch die Ziffern A, B, C, D, E, F in die entsprechenden Dezimalzahlen 10, 11, 12, 13, 14, 15 umwandeln.

Beispiel für 4FE16:

4 \cdot 16^2 + 15 \cdot 16^1 + 14 \cdot 16^0 = 1278_{(10)}

Für das Zählen und Rechnen im Hexadezimalsystem gibt es eine Eselsbrücke: A = 10 und B = 11 kann sich jeder merken. C wie zwölf, D wie dreizehn, e für vierzehn kommt vor f wie fünfzehn.
Member: clemens
clemens Nov 29, 2005 at 20:38:49 (UTC)
Goto Top
Mh ok danke schon mal, aber hatte eigentlich gehofft, es gäbe eine Möglichkeit über den SET Befehl (oder einen anderen). Dann werd ich das mal versuchen, zu implementieren face-smile

Gruß, Clemens
Member: Biber
Biber Nov 30, 2005 at 14:53:59 (UTC)
Goto Top
Moin, Clemens,
mach Dir nicht so viel Aufwand - es gibt Tausende von Hex2Dec.exe-et-vice-versa--Utilities.
Eins davon findest Du auf www.sysinternals.com.

Mit dem Set-Befehl geht es IMHO nicht von Dezimal nach Hexadezimal.
HTH Biber
Member: clemens
clemens Nov 30, 2005 at 15:27:58 (UTC)
Goto Top
hallo,
die lösung mit externen programmen wäre zwar einfach zu implementieren, aber ich will meine Batch Datei an viele von unseren Mitgliedern (arbeite in einem Verein, der seinen Mitgliedern einen Internetanschluss bereitstellt) ausliefern. Und da einige von den Mitgliedern ziemliche Daus sind, möchte ich nicht, dass sie mit mehreren Dateien hantieren müssen, sondern das die funktion der batch datei auf jeden fall gewährleistet ist.

danke für eure mühen,

gruß clemens