Forum: PC-Programmierung Hexadezimale Darsellung in C#.NET


von dumpfi (Gast)


Lesenswert?

Hallo zusammen,

ich versuche nun schon länger einen String wie z.B. "@0$%" nicht in
dieser Form, sondern in Hexadezimaler Schreibweise, d.h "0x40 0x30
0x24 0x25" in einem Textfeld anzeigen zu lassen. Allerdings finde ich
einfach nicht, wie das geht.
Mit welcher Funktion o.ä. kann man sich die hex-Werte anzeigen lassen?

Vielen Dank für eure Hilfe.

Gruß
dumpfi

von Stromspannung (Gast)


Lesenswert?

Hi,

Zahlen konvertierst du einfach mit

Convert.ToString(u,16)

nach Hexadezimal. Wenn du deinen String also in einzelne Chars
zerlegst, kannst du auf diese Weise das obige erreichen.

von dumpfi (Gast)


Lesenswert?

Hi Stromspannung,

danke dir für deine Antwort.
Der Hinweis mit dem zweiten Argument 16 war schon Gold wert. Ich habe
nie gesehen, daß die Funktion auch zwei Parameter akzeptiert.
(Absoluter Neuling in der Sprache.)

Aber wenn ich deinen Vorschlag versuche umzusetzen, dann beschwert sich
der Compiler mit folgender Fehlermeldung:

Argument '2': cannot convert from 'int' to
'System.IFormatProvider'.
Er scheint die 16 nicht zu akzeptieren, aber warum und was kann ich
dagegen tun?
(Ausschnitt aus meinem Source code im Anhang.)

Vielen Dank für deine Hilfe bisher.

Gruß
dumpfi

von dumpfi (Gast)


Lesenswert?

Alles klar.
Ich hab meinen Fehler gefunden. (Außerdem hatte ich meinen Anhang
vergessen seh ich grad.)

Es läuft alles so wie es soll.

Danke dir vielmals.

Gruß
dumpfi

von Stromspannung (Gast)


Lesenswert?

Du hast wahrscheinlich das "Convert" weggelassen ;)

von dumpfi (Gast)


Lesenswert?

Ja stimmt. Respekt!

Gruß
dumpfi

von Stromspannung (Gast)


Lesenswert?

Kein Respekt, mir kam nur die Fehlermeldung "seltsam vertraut" vor ;-)

von Stromspannung (Gast)


Lesenswert?

Hi nochmal,

du kannst es viel einfacher haben.

string s = String.Format("0x{0:X}", DeineZahl);

Dann hast du in s die Hex-Repräsentation der Zahl. Das ganze Spielchen
kannst du dann mit foreach für alle Chars des Strings machen.

von dumpfi (Gast)


Lesenswert?

Hallo,

danke dir vielmals für deine Mühe.
Ich nehme mal an, daß {0:X} für die führende Null bei der hexadezimalen
Darstellung sorgt. Das probiere ich morgen gleich mal aus, denn meine
Lösung hierfür sieht eher seltsam aus.
(Funktioniert aber auch, Juhuu.)

Gruß
dumpfi

von Stromspannung (Gast)


Lesenswert?

Nee, das {0:X} hat zum einen als {0} die Funktion als Platzhalter für
den Wert deiner Zahl. Also das, was in C/C++ printf das %d und Co
macht. Mit :X wird dann das Format spezifiziert, hier also Hex.


Gruß

von dumpfi (Gast)


Lesenswert?

Okay jetzt bin ich da durchgestiegen glaub ich.
Ohne den richtigen Ansatz habe ich mich schwer getan in der MSDN was
nützliches zu meinen Problemen zu finden.
Danke dir vielmals.

Gruß
dumpfi

von Stromspannung (Gast)


Lesenswert?

Ja, das Leid kenne ich :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.