Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dezimal zu Hexadezimal

Tipp Entwicklung Batch & Shell

Mitglied: 0xC0ffee

0xC0ffee (Level 1) - Jetzt verbinden

26.12.2009 um 09:30 Uhr, 10196 Aufrufe, 7 Kommentare, 3 Danke

Hier habe ich ein Script programmiert mit dem es möglich ist "Dezimal zu Hexadezimal" zu konvertieren. Das ganze wurde auf Windows XP SP2 getestet.

Wie funktioniert das nun? Jedes Programm hat einen s. g. "ExitCode" (in C/C++ entspricht das dem return-Value von der main-Funktion) die Variable die abgefragt wird ist die versteckte
01.
!=ExitCode!
Variable. Diese wird z. B. mit dem Befehl
01.
SET ""
abgerufen. Dieser ExitCode wird in einer 8-Stelligen hexadezimalen Zahl zurückgegeben.

Und nun zur Konvertierung:

RUN.bat
01.
@ECHO OFF 
02.
SETLOCAL ENABLEDELAYEDEXPANSION 
03.
 
04.
SET /P DEC_VALUE=DEC= 
05.
 
06.
CALL Dec2Hex HEX_VALUE !DEC_VALUE! 
07.
 
08.
ECHO HEX=!HEX_VALUE! 
09.
ECHO. 
10.
PAUSE


DEC2HEX.bat
01.
:DEC2HEX_START 
02.
GOTO DEC2HEX_MAIN 
03.
REM ****************************************** 
04.
REM *                                        * 
05.
REM * DEC2HEX [RETURN as Ref] [PARAM as Val] * 
06.
REM *                                        * 
07.
REM ****************************************** 
08.
 
09.
:DEC2HEX_MAIN 
10.
CMD /C EXIT %2 
11.
 
12.
FOR /L %%A IN (0,1,8) DO ( 
13.
	SET DEC2HEX_VAL=!=ExitCode:~%%A,1! 
14.
	IF !DEC2HEX_VAL! NEQ 0 ( 
15.
		SET DEC2HEX_RETURN=!=ExitCode:~%%A! 
16.
		GOTO DEC2HEX_RETURN 
17.
18.
19.
 
20.
:DEC2HEX_RETURN 
21.
IF NOT DEFINED DEC2HEX_RETURN SET DEC2HEX_RETURN=0 
22.
SET %1=!DEC2HEX_RETURN! 
23.
 
24.
:DEC2HEX_FREE 
25.
SET /F "USEBACKQ TOKENS=1 DELIMS==" %%A IN (`SET DEC2HEX_`) DO ( 
26.
	SET %%A= 
27.
28.
 
29.
:DEC2HEX_END 
30.
GOTO :EOF
Ich weiß nicht wie schnell das ist aber voll ausreichend und einfach geschrieben mit board eignen mitteln (der CMD).
Mitglied: bastla
26.12.2009 um 11:36 Uhr
Hallo 12648430 und willkommen im Forum!

Interessanter Ansatz - und funktioniert ...
Alternativ dazu sollte für positive Zahlen bis zur CMD-Genauigkeitsobergrenze von +2147483647 auch Folgendes genügen:
01.
@echo off & setlocal 
02.
if [%1]==[] (set /p "Dez=Dezimalwert: ") else (set "Dez=%~1" & echo Dezimalwert: %~1) 
03.
 
04.
set "Z10=A" & set "Z11=B" & set "Z12=C" & set "Z13=D" & set "Z14=E" & set "Z15=F" 
05.
 
06.
set /a Rest=Dez 
07.
set "Hex=" 
08.
 
09.
:Loop 
10.
if %Rest%==0 goto :Fertig 
11.
set /a Ziffer=Rest%%16 
12.
if %Ziffer% gtr 9 call set "Ziffer=%%Z%Ziffer%%%" 
13.
set "Hex=%Ziffer%%Hex%" 
14.
set /a Rest=Rest/16 
15.
goto :Loop 
16.
 
17.
:Fertig 
18.
echo Hexadezimal: %Hex%
Grüße
bastla
Bitte warten ..
Mitglied: zensbert
23.01.2010 um 09:08 Uhr
Gibt es das auch einmal für umgekehrt, Hex zu Dezimal?

Danke..
Bitte warten ..
Mitglied: bastla
23.01.2010 um 12:38 Uhr
Hallo chizophren!

Etwa so:
01.
@echo off & setlocal 
02.
if [%~1]==[] (set /p "Hex=Hexwert: ") else (set "Hex=%~1" & echo Hexwert: %~1) 
03.
set /a Dez=0x%Hex% 
04.
echo Dezimal: %Dez%
Grüße
bastla
Bitte warten ..
Mitglied: zensbert
23.01.2010 um 19:13 Uhr
Danke für die Antwort, mache aber irgendwas falsch..

Habe den hex-wert in einer variable drin.. (%ID%), habe der hex variable den wert gegeben, aber wird ja von deiner else klammer ja wieder überschrieben..
Ausgabe jedoch kommt nur:

Hexwert: %~1

sowie:

Ungültige Zahl. Nummerische Konstanten sind entweder dezimale (17),hexadezimale (0x11) oder oktale (021) Zahlen.

was mache ich falsch, klappts so bei dir?

Thx
Bitte warten ..
Mitglied: bastla
23.01.2010 um 19:19 Uhr
Hallo chizophren!

Die Frage ist natürlich, was in Deiner Variablen steht ...

... ansonsten brauchst Du ja nur die eine Zeile
set /a Dez=0x%ID%
Grüße
bastla
Bitte warten ..
Mitglied: zensbert
24.01.2010 um 09:31 Uhr
dank dir.. so gings.. aber wofür ist dann die andere zeile?

Grüße..
Thomas
Bitte warten ..
Mitglied: bastla
24.01.2010 um 10:17 Uhr
Hallo chizophren!
aber wofür ist dann die andere zeile?
Benutzeroberfläche ...

Grüße
bastla
Bitte warten ..
Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...