2 kleine Methoden aus C++ in C# erstellen
-
Hallo allerseits,
ich hoffe ihr könnt mir helfen. Ich habe 2 "kleine" Methoden aus C++, die ich in C# schreiben muss. Ich weiss aber nicht wie ich das realisieren kann. Es sieht so einfach aus, aber ich komme nicht drauf.
unsigned long get_dec(char* byte_string,char len) { // Converts two hex characters into one byte char i, offset; unsigned long result=0; offset = '0' ; for (i=0;i<len; i++) { result = result * 10 + (byte_string[i]-offset); } return(result); }
unsigned long get_hex(char* byte_string,char len) { // Converts two hex characters into one byte char i, offset; unsigned long result=0; for (i=0;i<len; i++) { if( byte_string[i] <= '9' ) // ASCII digits offset = '0' ; else if( byte_string[i] <= 'F' ) // ASCII uppercase Letters offset = 'A' - 10; else // ASCII lower case Letters offset = 'a' - 10; result = result * 16 + (byte_string[i]-offset); } return(result); }
-
Wo hängst du denn? Die Funktionen kann man fast 1:1 übernehmen (nur ein wenig Datentypen anpassen)
evtl. auch interessant:
(msdn) How to: Convert Between Hexadecimal Strings and Numeric Types (C# Programming Guide)
-
So müsste es doch ganz easy korrekt sein...
UInt32 get_dec(string byte_string, string len) { int i, offset; UInt32 result = 0; offset = '0'; for (i = 0; i < len.Length; i++) { result = result * 10 + Convert.ToUInt32(byte_string[i] - offset); } return result; }
UInt32 get_hex(string byte_string, char len) { int i, offset; UInt32 result = 0; for (i = 0; i < len; i++) { if( byte_string[i] <= '9' ) // ASCII digits offset = '0' ; else if( byte_string[i] <= 'F' ) // ASCII uppercase Letters offset = 'A' - 10; else // ASCII lower case Letters offset = 'a' - 10; result = result * 16 + Convert.ToUInt32(byte_string[i] - offset); } return(result); }