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


von Leon E. (adiagi)


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

von Peter II (Gast)


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

von Leon E. (adiagi)


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

von Peter II (Gast)


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.

von Leon E. (adiagi)


Lesenswert?

Hi Peter,

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

Danke nochmal

Gruß

Agit

von Leon E. (adiagi)


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

von Waldo (Gast)


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

von Peter II (Gast)


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.

von Leon E. (adiagi)


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

von Georg aus Wien (Gast)


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.

von Peter II (Gast)


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.

von Leon E. (adiagi)


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

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.