• 19.04.2024, 13:50
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Hexadezimalcode umrechnen

Freitag, 10. August 2012, 09:54

Hallo zusammen,

für mein aktuelles Projekt "RFID Transponder goes Urlaubsplaner" brauche ich etwas Hilfe bei folgender Aufgabenstellung:

Die codierten Codes auf den Transpondern sind als Hexadezimalcode hinterlegt und werden von meinem Lesegerät entsprechend ausgelesen.
Auf den Transpondern ist eine 8 stellige Dezimalzahl aufgedruckt, die ebenfalls den Transpondercode beschreibt.

Aufgabe:
Wie kriege ich die Ausgabe vom Lesegerät, z.B. "1D0D939C" umgerechnet in eine 8 stellige Dezimalzahl?

Freitag, 10. August 2012, 09:57

Hiho!

Bloss einmalig umrechnen um die Chips anzumelden oder brauchst du eine Programmsequenz (welche Sprache?) die du irgendwo einbauen kannst?

Freitag, 10. August 2012, 10:05

einmalig umrechnen reicht völlig aus. Der Idealfall wäre ne Formel für ne Excelzelle.

Ich kann mir ne Formel basteln, aber dazu muss ich verstehen wie umgerechnet wird

Freitag, 10. August 2012, 10:06

Also wenn ich das Umrechne komme ich da mit 8 Decimalstellen aber nicht hin.

Wie man Hex in Dec umrechnet ist eigentlich ganz einfach :)
Einfach von rechts die Ziffer einfach mal 16^x rechnen wobei x bei 0 anfängt.

Also in deinem Beispiel : 12 + 9*16 + 3*16^2 ... und soweiter und sofort.

In den gängigen Programmiersprachen muss man da selbst selten Handanlegen, da gibts fertige Funktionen für :)
Wenn du es nur einmalig brauchst, helfen dir schlaue Taschenrechner oder einfach so seiten wie http://www.wolframalpha.com/input/?i=0x1d0d939c

Für exel soll es auch fertige formeln geben. http://office.microsoft.com/de-de/excel-…P005209111.aspx

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »palme|kex`« (10. August 2012, 10:07)

Freitag, 10. August 2012, 10:07

Konkretes Beispiel:

Auf meinem Chip steht drauf "05019103" und das Lesegerät liest aus: 1D0D98A1

Ich kenne alle Nummern der im Umlauf befindlichen Chips und würde diese gern auf das Format umrechnen, wie es das Lesegerät liest. Dann bräuchte ich nicht alle Chips händisch einlesen

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Draco« (10. August 2012, 10:09)

Freitag, 10. August 2012, 10:09

Dann ist die ID und der ausgelesene Hexcode allerdings nicht einfach das selbe :)
Fangen alle Hexcodes mit 1D0D an ?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »palme|kex`« (10. August 2012, 10:13)

Freitag, 10. August 2012, 10:13

Es muss aber irgendwie zu konvertieren sein, denn nichts anderes macht das ZEiterfassungssystem (zu welchem die Chips letztlich gehören) ja auch. Ich lese keine Transponder ein, sondern tippe im Adminbereich die aufgedruckte Nummer ein und fertig. Dann kann die Software irgendwie alle Chips identifizieren anhand dieser Nummer.
Das Lesegerät vor mir liest den Transponder aus wie er ist, sprich nackig ohne integrierte Umrechnung oder ähnliches.

@ Palme: nein, fangen nicht alle so an, aber fast. Einige fangen mit 1C29 an

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Draco« (10. August 2012, 10:15)

Freitag, 10. August 2012, 12:02

der taschenrechner von win7 (calc.exe) kann zahlen von innerhalb von hex, bin, oct und dez umrechnen.
die von dir genannate kombi hat aber so gar keine ähnlichkeit
05019103 = 4C95DF(hex)
1D0D98A1 = 487430305(dez)
auch wenn man das blockweise umwandelt, ergeben sich keine hinweise auf die mögliche rechenformel

Dez = Hex
0 = 0
1 = 1
2 = 2
3 = 3
4 = 4
5 = 5
6 = 6
7 = 7
8 = 8
9 = 9
10 = A
11 = B
12 = C
13 = D
14 = E
15 = F

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »NikoMo« (10. August 2012, 12:06)

von all den dingen die mir sind verloren gegangen,
habe ich am meisten an meinem Verstand gehangen

Freitag, 10. August 2012, 12:15

Das wird ein Herstellerspezifischer Code sein, aber anhand eines einzelnen Beispiels lässt sich der kaum knacken... Hast du dich mal auf der Website des Betreibers oder in den technuschen Unterlagen zu dem Zeiterfassungssystems umgeschaut ob da irgendwo ein Programm oder die Codetabelle verfügbar ist?

Freitag, 10. August 2012, 13:04

Das wird ein Herstellerspezifischer Code sein, aber anhand eines einzelnen Beispiels lässt sich der kaum knacken... Hast du dich mal auf der Website des Betreibers oder in den technuschen Unterlagen zu dem Zeiterfassungssystems umgeschaut ob da irgendwo ein Programm oder die Codetabelle verfügbar ist?

Leider nein. Das Zeiterfassungssystem ist ein Komplettpaket, da gibt es keinerlei Hinweise auf die Verbindung zwischen aufgedruckter Nummer und tatsächlichem Transponderinhalt.

Seis drum, danke für die Hilfe. Bevor ich dafür noch mehr Zeit opfere, werde ich sämtliche Transponder manuell einlesen und fertig.

Freitag, 10. August 2012, 20:40

Windows-Taschenrechner auf "Progammierung" stellen, dann kannste zwischen den Formaten über die Radiobuttons oben wechseln :)
"Live free or die: Death is not the worst of evils."

Donnerstag, 16. August 2012, 19:26

Alternativ nutzt man einfach http://www.wolframalpha.com/input/?i=con…e+16+to+base+10

aber wie bereits festgestellt kommt da was neunstelliges und nichts achtstelliges raus.

Zitat von »Dino«

...lauter spinner ;)
(wehe, das nimmt jemand in seine sig ;))
dino