So konvertieren Sie eine regelmäßige Zeichenfolge in eine hexadezimale ASCII-string in C#?

Ich war vor kurzem an einem Projekt arbeiten, wo ich die Konvertierung einer regulären Reihe von zahlen in ASCIII hexadezimal und speichern Sie die hex in string.

Also ich hatte so etwas wie

string random_string = "4000124273218347581"

und ich wollte, es zu konvertieren in eine hexadezimale Zeichenkette in der form

string hex_string = "34303030313234323733323138333437353831"

Dies mag eine seltsam spezifische Aufgabe, aber es ist eines, denen ich begegnete und, als ich versuchte, herauszufinden, wie Sie ausführen, konnte ich nicht finden, keine Antworten online.

Jedenfalls habe ich es herausgefunden und erstellt eine Klasse, die Dinge aufgeräumter in meinem code.

In Fall, jemand Bedürfnisse für konvertieren eine reguläre string in einen hexadezimalen string werde ich sein posting eine Antwort in einem moment, in dem sich meine Lösung.

(Ich bin Recht neu auf stackoverflow, so hoffe ich, dass dies okay ist)

=========================================

Stellt sich heraus, ich kann keine Antwort auf meine Frage, die mich innerhalb der ersten 8 Stunden zu Fragen, der durch die nicht hoch genug ansehen.

Also ich Klebe meine Antwort hier:

Okay, also hier ist meine Lösung:

Erstellte ich eine Klasse namens StringToHex im namespace

public class StringToHex
{
    private string localstring;
    private char[] char_array;
    private StringBuilder outputstring = new StringBuilder();
    private int value;

    public StringToHex(string text)
    {
        localstring = text;
    }

    public string ToAscii()
    {
        /* Convert text into an array of characters */
        char_array = localstring.ToCharArray();
        foreach (char letter in char_array)
        {
            /* Get the integral value of the character */
            value = Convert.ToInt32(letter);

            /* Convert the decimal value to a hexadecimal value in string form */
            string hex = String.Format("{0:X}", value);

            /* Append hexadecimal version of the char to the string outputstring*/
            outputstring.Append(Convert.ToString(hex));
        }
    return outputstring.ToString();
    }
}

Und es zu verwenden, müssen Sie etwas tun, von der form:

/* Convert string to hexadecimal */
StringToHex an_instance_of_stringtohex = new StringToHex(string_to_convert);
string converted_string = an_instance_of_stringtohex.ToAscii();

Wenn es richtig funktioniert, wird die konvertierte Zeichenfolge sollte zweimal die Länge des original-Strings (durch hex mit zwei bytes zur Darstellung jedes Zeichens).

Nun, wie jemand bereits darauf hingewiesen, finden Sie einen Artikel, der etwas ähnliches macht hier:

http://www.c-sharpcorner.com/UploadFile/Joshy_geo/HexConverter10282006021521AM/HexConverter.aspx

Aber ich fand es nicht sehr hilfreich für meine konkrete Aufgabe und ich würde gerne glauben, dass das meine Lösung ist eleganter 😉

  • Wie funktioniert die "hexadezimal-string" beziehen sich auf das original? Welche Regeln?
  • ASCII Rulez!!!
  • setzen Sie ein 3 vor jedem char 🙂
  • Ja, ich wollte es herausfinden, aber ich wollte die OP zu geben, mehr Gedanken, wie die Frage umrahmt wurde.
  • Es ist OK Fragen zu stellen und zu beantworten, sich aber einen) check für betrogene gründlich und b) machen es zu einer (präzisen) Frage.
  • Wenn alle Zeichen sind in der Tat zahlen und wollte die hex-Codierung ist der ASCII -,, die gut funktionieren würde 🙂
  • Ich habe aktualisiert die start-Frage clarifywhat @Oded gefragt.
  • Sagen, dass es wird umgewandelt in "hex" nicht viel bedeuten. Du meinst er ist konvertiert, um die hexadezimale ASCII-Darstellung (da UTF-16 oder andere Kodierungen können als HEX-ASCII).
  • Ah, okay, ich bekomme, was du meinst. Es ist in der Tat konvertiert ASCII-so werde ich Sie aktualisieren die Frage das deutlich zu machen.

InformationsquelleAutor GeorgePotter | 2012-04-04
Schreibe einen Kommentar