String zu DWORD convertieren (die zeichen, nicht den ASCII code)



  • Also ich habe das Problem, dass ich einen wert wie diesen "CD270000" auf einem string gespeichert habe, es soll einen HEX wert (DWORD) darstellen, und ich muss es in ein DWORD convertieren um damit weiterrechnen zu können.
    Mich intressieren dabei NICHT der ASCII code (wie es am pc gespeichert ist) sondern das was das menschliche Auge hier zu sieht.

    // d.h wenn ich z.b. habe:
    string ich_will_hex("CD27FEA0");
    
    // will ich...
    DWORD hier_in_hex = StringToDword(ich_will_hex);
    
    // hier_in_hex sollte dabei den wert: 0xCD27FEA0 annehmen!
    
    // habe folgendes probiert
    DWORD CharToDword(const char * text_hex)
    {
    	DWORD ret=0x00000000;
    
    	char hex_symbols[]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    	DWORD adder[]={0x0FFFFFFF, 0x00FFFFFF, 0x000FFFFF, 0x0000FFFF, 0x00000FFF, 0x000000FF, 0x0000000F, 0x00000000};
    	for(int j=0; j<8; j++)
    	{
    		for(int i=0; i<16; i++)
    		{
    			if(hex_symbols[i] == text_hex[j])
    			{
    				ret += (i + adder[i];
    			}
    		}
    	}
    	return ret;
    }
    
    DWORD iam_hexxxx = CharToDword("F2CE5678");
    
    //dabei kommt aber nur schrott raus ^,^
    



Anmelden zum Antworten