Benötige Hilfe



  • ah, ich nochmal...

    die ausgabe des Binärcodes funktioniert noch net ganz, aber das macht jetzt ja wohl nix mehr, die kreigt man auch selbst noch hin...

    (ich sollte mich mal wieder anmelden damit ich die dinger bearbeiten kann)



  • void decToBin(char *bin, int dec, int len) {
    	memset( bin, 0, len + 1);
    
    	int mask = 1 << (len - 1);
    	for( int n = 0; n < len; n++) {
    		*bin = ((mask & dec) != 0) + '0';
    		mask >>= 1;
    		++bin;
    	}
    }
    
    //so, das funktioniert...
    


  • @Foo
    Also entweder richtig C++ oder gar nicht. Und nicht so ein C/C++ Mix.



  • Ich hab das schon erwartet...

    Aber ich mag std::cout bzw std::cin einfach nicht... printf und scanf gefallen mir um einiges besser, genau so char* statt std::string

    Aber ich will auf schöne sachen wie Klassen, Template-Klassen/Funktionen und stack/vector auch nicht verzichten.

    Also muss ich wohl oder übel C/C++ mischen... *unschuldig lächel*

    Und ich mein, solange das Produkt am ende funktioniert, ists doch eigentlich egal, oder?...

    (Überzeug mich von std::cout... wie realisiere ich z.B: %1.2f oder %5X ? ich hab keine ahnung, und da ich zu faul bin nachzugucken, weil printf ja wunderbar funktioniert, werd ichs auch erstmal weiter benutzten 🙂 )



  • hier der Quellcode:

    #include <iostream>
    
    using namespace std;
    
    main()
    {
    	int D=0,C=0,B=0,A=0;
    	int D1=0,C1=0,B1=0,A1=0;
    
    	cout<<"Gray-Code angeben(einzelne bits durch leerzeichen trennen):"<<endl;
    
    	cin>>D;
    	cin>>C;
    	cin>>B;
    	cin>>A;
    
    	D1=D;
    	C1=(D&!C)|(!D&C);
    	B1=(!D&!C&B)|(D&C&B)|(!D&!B&C)|(D&!C&!B);
    	A1=(!A&!D&C&!B)|(D&!A&!C&!B)|(D&C&B&!A)|(A&!B&C&D)|(!C&!D&B&!A)|(A&!B&!C&!D)|(B&!C&A&D)|(C&B&!D&A);
    
    	cout<<"der Binaer-Code ist:"<<endl;
    	cout<<D1<<" "<<C1<<" "<<B1<<" "<<A1<<endl;
    
    	return(0);
    }
    

    👍
    mfg hohesC 😃 😃 😃 😃



  • Dafür ist meiner wenigstens nachvollziehbar und nicht über irgendwelche Diagramme, von denen ich ehrlichgesagt keine Ahnung habe, erstellt... Und dafür dass ich vorher noch nie was von GrayCode gehört hatte und auch noch Hausaufgaben machen musste und Latein lernen musste (hmpf) find ich den vollkommen in ordnung... und man muss die bits nicht einzelnd eingeben, man kann den code auf längere/kürzte bitlänge verändern und so weiter 🙂



  • ist doch ok! ist auch nur spaßig gemeint! 😉

    mfg hohesC

    [EDIT]MELD DICH MAL AN[/EDIT]



  • Glaubst du ich meins anders ^^? und denkst du wirklich _ich_ hab hausaufgaben gemacht?



  • Foo schrieb:

    Und ich mein, solange das Produkt am ende funktioniert, ists doch eigentlich egal, oder?...

    Die Frage ist nur wie? Deinen Code könnte man problemlos zum Absturz bringen, mit std::string und std::cin wäre das schon wesentlich schwieriger. Ich will jetzt aber nicht zu sehr auf die Vorteile von cout/cin gegenüber printf/scanf eingehen, das würde den Rahmen sprengen und wäre zu sehr OT.
    Zudem heissen die Header in C++ <cstdio>, <cmath> und <cstring>.



  • naja meiner verarbeitet auch nur 4 bits an gray zu binär! 😃
    wenn ich mal ne halbe stunde zeit hab setz ich die 16 bit version um!

    mfg hohesC 😃 😃 😃

    [EDIT]man sollte nicht die wertigkeit mit den bits verwechseln[/EDIT] 😃



  • groovemaster schrieb:

    Foo schrieb:

    Und ich mein, solange das Produkt am ende funktioniert, ists doch eigentlich egal, oder?...

    Die Frage ist nur wie? Deinen Code könnte man problemlos zum Absturz bringen, mit std::string und std::cin wäre das schon wesentlich schwieriger. Ich will jetzt aber nicht zu sehr auf die Vorteile von cout/cin gegenüber printf/scanf eingehen, das würde den Rahmen sprengen und wäre zu sehr OT.
    Zudem heissen die Header in C++ <cstdio>, <cmath> und <cstring>.

    Dieser Code sollte nicht sicher sein, sondern nur zeigen, wie ich mir das halt mit dem umwandeln von gray zu binär machen würde...

    cstdio, cmath und cstring kannt ich nicht 🙂 werd ich mal schauen



  • #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    main()
    {
    	char i[17]={0};
    
    	int p=16,x=0,y=1;
    	cout<<"Geben Sie bitte den 16bit Gray-Code ein:"<<endl;
    	fgets(i,17,stdin);	
    
    	while(p)
    	{
    		if(i[x] == '1' && i[y] == '1')
    		{
    			i[y]='0';
    			x+=2;
    			y+=2;
    		}
    		else if(i[x] == '1'&& i[y] == '0')
    		{
    			i[y]='1';
    			x+=2;
    			y+=2;
    		}
    		else
    		{	
    			x+=2;
    			y+=2;
    		}
    		p-=2;
    	}
    	cout<<"der Binaer-Code ist:"<<endl;
    	cout<<i<<endl;
    	return(0);
    }
    

    mfg hohesC 😃


Anmelden zum Antworten