konvertierungs - probleme



  • moin

    ich hab da n bissi konvertierungsprobleme...
    ich möchte nacheinander folgende strings konvertiert haben:

    01
    65
    FF
    00

    char hex(string wert)
            {
    //var 1:
                char ret = (char)Int32.Parse(wert, NumberStyles.AllowHexSpecifier);
    
    //var 2:
                int n = Convert.ToInt32(wert, 16);
                char c = (char)n;
    
                return c;
            }
    

    raus kommen tut:
    01
    65
    3F
    00

    sobald ich größer als 7F werd konvertiert mir c# alles in 3F
    wieso ist dem so??? und wie kann ich es beheben

    mfg LT



  • Bei mir kommt da bei beiden Varianten für ret bzw. c 255 raus, was auffallend richtig ist. Wie gibst du es denn aus?



  • string cmd="00 00 00 00 00 0E 01 65 07 00 00 00 01 01 00 01 01 FF ff 00";
                char[] delimiterChars = { ' ' };
                string[] singlecmd = cmd.Split(delimiterChars);
    
                string data = "";
                for (int i = 0; i < singlecmd.Length; i++)
                {
                    data = data + "" + hex(singlecmd[i]);
                }
                try
                {
                    server.Send(Encoding.ASCII.GetBytes(data));
                    erg = true;
                }
    

    wenn ich dies ausführe und per wireshark an der kommunikation lausche kommt dies bei raus:

    00 00 00 00 00 0e 01 65 07 00 00 00 01 01 00 01 01 3f 3f 00

    wieso ist dem so ???



  • Hast du es schonmal mit Debuggen versucht anstatt den Umweg ueber Wireshark zu gehen?



  • erledigt ... lag am string ... (data = data + "" + hex(singlecmd[i]);)


Anmelden zum Antworten