www.mikrocontroller.net

Forum: PC Hard- und Software String to Hex C#


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Leon E. (adiagi)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi,
wie kann ich einen String in eine HEx-Zahl umwandeln, wobei der String 
schon das richtige Format hat.
Also z.B.
Sring a = "FF00";

dann sollte so konvertiert werden.

int b = Convert.ToInt16(a);

b sollte dann 0xFF00 sein.

Hab im inernet gsucht aber nichts gfune.

Danke für eure Hilfe.

Gruß
Agit

Autor: Peter II (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Agit A. schrieb:
> wie kann ich einen String in eine HEx-Zahl umwandeln

überhaupt nicht, dann ein computer kennt keine HEX-Zahlen. Hex ist eine 
darstellungsform mehr mehr nicht.

du willst also eine Zahl habe.

Und google liefert gleich als erstes

http://msdn.microsoft.com/de-de/library/bb311038.aspx

Autor: Leon E. (adiagi)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi Peter,
danke für die schnelle Antwort.
Ich denke ich hab mein Problem nicht klar geschildert.

Also:
in der GUI habe ich ein Textfeld, dass wenn ich irgendwas drücke HEX 
werte ausgibt. Dieses Textfeld speichere ich in einen String, wobei es 
eigentlich shcon der Wert ist den ich benötige. Aber ich kann ja aus dem 
Textfeld nicht direkt einen Integer machen oder?

Nun habe ich meinen String "FF00EE11".
daraus brauch ich halt byte zum biespiel = 0XFF00EE11

Vielen Dank für die Hilfe

Gruß

Agit

Autor: Peter II (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Agit A. schrieb:
> daraus brauch ich halt byte zum biespiel = 0XFF00EE11

nein das brauchst du nicht, denn 0XFF00EE11 = 4278251025 = 
0b11111111000000001110111000010001 = 037700167021

wie der computer es intern speichert kann dir ziehmlich egal sein. du 
Willst eine Zahl mehr nicht.

Und dieses steht im den verlinkten artikel wie es geht.

Autor: Leon E. (adiagi)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi Peter,

Klar war dumm von mir. Es ist ja nur eine Darstellugnsorm für den 
mensch.

Danke nochmal

Gruß

Agit

Autor: Leon E. (adiagi)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi,

hab da doch noch ne frage.
Der String wird bei deiner Funktion in Hex gewandelt.
Ich willl aber dass der String so bleibt wie er ist und ich ihn als 
Integer weiterverwenden kann anstatt als string.
Verstehst du was ich meine?

String "abbaa" ( ist eigentlich schon der richtige Hex-Wert muss nicht 
gewandelt werden, will aber als Integer haben nicht als String)

Danke für die antwort

Gruß

Agit

Autor: Waldo (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo,
dir einzelnen Zeichen sind als ASCII Code im String hinterlegt. Jedes 
Zeichen belegt ein Byte (kein UNICODE) mit dem Wert aus der ASCII 
Tabelle.
"0" hat den Wert 48, "9" den Wert 57, "A" hat 65 und "F" hat 70.

Value=0
Schleife:
   Value=Value*16
   nächstes Zeichen von links nach c holen
   wenn c>="0" und c<="9": cWert=c-48
   wenn c>="A" und c<="F": cWert=c-55
   Value= Value+cWert
nächstes Zeichen


Waldo

Autor: Peter II (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Agit A. schrieb:
> Ich willl aber dass der String so bleibt wie er ist und ich ihn als
> Integer weiterverwenden kann anstatt als string.
> Verstehst du was ich meine?

nein - das ist nicht zu verstehen. entweder willst du eine zahl haben 
oder eine String beides gleichzeitig geht nicht.

Autor: Leon E. (adiagi)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi,

ich muss nichts wandeln,
will nur meinen String als Ineger haben.
Es soll ich also nu der datentyp ändern.
Aus string a = "ab22" soll int a = 0xab22 werden.
Den String bekomm ich aus einer Textbox. Will den Wert der Box aber als 
Integer haben.

Gruß

Agit

Autor: Georg aus Wien (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
a = "0x" + a;
Convert.ToInt32(a, 16);

ausm Kopf heraus müssts so gehn. Schau dir mal die Überladungen für 
Convert.ToInt32 an.

Autor: Peter II (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Agit A. schrieb:
> will nur meinen String als Ineger haben.
> Es soll ich also nu der datentyp ändern.

und genau das geht nicht, man kann aus einen String kein Integer und 
umwandlung machen. Ich versteh immer noch nicht was du willst.

Autor: Leon E. (adiagi)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi Georg,

oh mann wenn ich gewusst hätte, dass es so einfach ist.
Vielen Dank.
War gooldwert der Tipp.
Genau das habe ich gesucht.

Gruß

Agit

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net