Top-Themen

Aktuelle Themen (A bis Z)

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, 10351 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
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows 10
Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App
Tipp von kgbornWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...