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, 10077 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Sonstige Systeme
gelöst HEX - Datei zu Dezimal (6)

Frage von firstline zum Thema Sonstige Systeme ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...