Binär Zahlen in Dezimalzahlen wandeln



  • Hey danke für die Lösung.

    Kannst du sie mir auch noch etwas erklären würde sie gern verstehen 😕

    gruß mtx89



  • rollerfreak2 schrieb:

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #include <conio.h>
    
    int main()
    {
      // länglicher quelltext 
    }
    
    int main()
    {
        int bit;
        int dec = 0;
    
        printf("Zahl:"); 
    next:
        bit = getch();
        if (bit == '0' || bit == '1')    
        {
            putchar (bit);
            dec = 2 * dec + bit - '0';
            goto next;
        }
    
        printf("\nDezimal=%d\n",dec);
    }
    

    😉



  • Die Lösung ist doch einiges kürzer :p

    Aber frage kann man das goto auch durch ne schleife ersetzen??
    Weil kenn mich nicht mit goto aus.

    Was passiert bei dem Befehl putchar (bit)??



  • next:
        bit = getch();
        if (bit == '0' || bit == '1')    
        {
            putchar (bit);
            dec = 2 * dec + bit - '0';
            goto next;
        }
    
    while(bit =='0' || bit == '1'){
    ...
    }
    

    goto nur benutzen wenn es sich anbietet



  • int main(){
    
        int bit;
        int dec = 0;
    
        printf("Zahl:");
    
        bit = getch();
        while(bit =='0' || bit == '1'){
    
            putchar (bit);
            dec = 2 * dec + bit - '0';
    
        }
    
        printf("\nDezimal=%d\n",dec);
    
    	return 0;
    }
    

    Aber jetzt bekomm ich ne endlos Schleife



  • Stelfer schrieb:

    goto nur benutzen wenn es sich anbietet

    mtx89 schrieb:

    Aber jetzt bekomm ich ne endlos Schleife

    tja, das kommt davon, wenn man mit aller gewalt auf 'goto' verzichten will 😉
    na, aber im ernst, es geht auch ohne:

    int main()
    {
        int bit = '0';
        int dec = 0;
    
        printf("Zahl:");
        while (bit == '0' || bit == '1')
        {
            dec = 2 * dec + bit - '0';
            bit = getch();
            putchar (bit);
        }
    
        printf("\nDezimal=%d\n",dec);
    }
    

    aber jetzt, ohne goto, finde ich, leidet die verständlichkeit etwas.
    🙂



  • Hey super!
    Also ich verstehs.

    Aber eine Frage hab ich noch was bewirkt putchar (bit)???



  • mtx89 schrieb:

    Hey super!
    Also ich verstehs.
    Aber eine Frage hab ich noch was bewirkt putchar (bit)???

    soso, du verstehst es, aber fragst was putchar bedeutet?
    wiederspricht sich das nicht etwas? 😉

    btw: putchar() gibt ein zeichen aus.



  • Will ja nicht meckern. aber nie nie mit goto programmieren. Da streuben sich ja einen die Haare...!



  • rollerfreak2 schrieb:

    Will ja nicht meckern. aber nie nie mit goto programmieren. Da streuben sich ja einen die Haare...!

    falsch!

    goto mit verstand benutzen !

    es geht zwar immer ohne goto aber es ist manchmal sinnvoll es zu benutzen

    wie z.b. bei 20 verschachtelungen ....


Anmelden zum Antworten