2016-12-20 3 views
0

Lassen Sie mich zuerst das Szenario beschreiben.Umwandlung von Dezimal zu Hexadezimal

Was ich versuche, ist eine Zeichenfolge in hex konvertieren.

Zum Beispiel eine binäre Zeichenfolge bestehend aus 1s & 0s viz. 110011, , die sie als eine Gruppe von 4 Ziffern paaren (hier zwei 0 für 8 Ziffern anhängen), jedes Paar einzeln in hex umwandeln und dann das hexadezimale Ergebnis verbinden, um die Ausgabe zu erhalten.

Für Oktal gleiche wie für binäre war aber hier Eingang Oktal-String ist aufgeteilt in Gruppen von 3 Ziffern

Für ASCII, jedes Byte Äquivalent der Ziffer hex umgewandelt und gespeichert wird.

Jetzt ist das Problem, was soll ich für die Eingabe dezimaler Zeichenfolgen tun?

- Soll ich die gleiche Methode wie für ASCII verwenden? -Oder gibt es einen anderen Weg?

EDIT: -

Ich bin nicht nur Zahlen konvertieren, sondern eine Reihe von Zahlen zu konvertieren.

Binärstring - Gruppen von 4 Ziffern & dann wandeln sie
Octal Zeichenfolge hex - Gruppen von 3 Ziffern & sie dann konvertieren
ASCII String hex - für jedes Zeichen Byte Äquivalent & dann, dass konvertieren hex

So ist die Länge nicht das Problem. Die Frage ist, wie der Dezimalstring konvertieren (welche Art von Pairing/Gruppierung soll ich verwenden)

HINWEIS: Ich weiß schon über Oktal Umwandlung binär & Dezimalzahlen hex. In diesem Teil geht es mehr darum, wie man die dezimale Zeichenfolge in Gruppen aufteilt, um jede dezimale Gruppe getrennt in hex zu konvertieren und dann das resultierende hex zu verbinden.

+1

Sie mögen dies bedeuten, zum Beispiel? [Konvertieren einer langen binären Zeichenfolge in ein hexadeziertes C#] (http://stackoverflow.com/q/5612306/3744182). – dbc

+0

Eigentlich ist das für binäre Zeichenfolge. Wie ich oben erwähnt habe, ist das Problem, die Dezimalzahl in hex zu konvertieren –

+0

Also dann so? [Wie konvertiert man in C# Zahlen zwischen hexadezimal und dezimal?] (Http://stackoverflow.com/questions/74148/how-to-convert-numbers-hexadecimal-and-decimal-in-c-?rq = 1) – Abion47

Antwort

0

Der einfachste Weg, dies zu erreichen, wäre, die Ziffern als ASCII-Zeichen zu betrachten (0-9 haben die ASCII-Werte 48-57) und sie in Hex umzuwandeln, wie Sie es bereits tun.

Wenn Sie es anders machen möchten, müssen Sie Ihrem Programm eine neue Logik hinzufügen. Es hängt von Ihren persönlichen Vorlieben ab.

+0

Scheint wie eine mögliche Lösung, aber in diesem Fall wäre die Umwandlung für ASCII- und Dezimalzeichenfolgen gleich. –

+0

Wenn Sie zwischen Int und String von int unterscheiden können, müssen Sie eine Möglichkeit haben, den Unterschied zu erkennen. Wahrscheinlich umgeben eine Reihe von Ints von Doublequotes ( –

+0

Hmm, gute Idee. Ebenso könnte ich auch CSV, etc. verwenden. Danke. –

2

Hier muss das Rad nicht neu erfunden werden.

string input = "123456"; 
string outputHex = int.Parse(input).ToString("X"); 

// output = "1E240" 

Oder noch besser:

string outputHex = Convert.ToString(int.Parse(input), 16); 

Mit dieser Methode können Sie auch andere Zahlensysteme tun:

string outputOct = Convert.ToString(int.Parse(input), 8); 
string outputBin = Convert.ToString(int.Parse(input), 2); 
Verwandte Themen