[Problem]Binär zu Integer und zurück



  • Moin ich versuche gerade ne funktionierende typenumwnadlung hinzubekommen.
    IntToBin mache ich mit

    UnicodeString IntToBin(int zahl)
    {
    	char p1[32];
    	itoa(zahl,p1,2);
    	return p1;
    }
    

    das sollte eigentlich klappen.
    BinToInt klappt aber weniger, da versuche ich es mit

    int BinToInt(UnicodeString binaer)
    {
    	int a=0;
    	long int j=1;
    	for (int i=binaer.Length();i>0; i--) {
    		if (binaer[i]=='1') {
    			a+=j;
    		}
    		j=j*2;
    	}
    	return a;
    }
    

    weiß jemand was falsch ist?



  • Was soll denn da nicht funktionieren?

    Bei mir funktioniert das so!



  • wenn ich das wüste hätte ich das ja bereits behoben.
    mir kamm das auch richtig vor, aber bei

    int i=0;
    	int j=0;
    	randomize();
    	while(j<=1000000)
    	{
    		int r=random(10000);
    		if (r=BinToInt(IntToBin(r))) {
    			i++;
    		}
    	j++;
    
    	}
    	Label1->Caption=i;
    

    kommt nicht ne million raus, sondern so um 999900 bis 999990



  • blub1991 schrieb:

    if (r=BinToInt(IntToBin(r)))
    ...

    Soll da wirklich eine Zuweisung hin?


Log in to reply