Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [C]Convertitore decimale a binario

    codice:
    #include <stdio.h>
    #include <stdbool.h>
    main()
    {
          int dec,bin1,bin2,bin3,bin4;
          char scelta,s,S;
          do
    {
          printf("------------------------------------------------------------------");
          printf("Inserire il numero decimale da convertire in binario:");
          scanf("%d",&dec);
          
    {
          if(dec%2==0)
          bin1=0;
          printf("%d\t",bin1);
          else
          if(dec%2==1)
          dec=dec-1;
          bin1=1;
          printf("%d\t",bin1);
          dec=dec/2;
    }
    {
          if(dec%2==0)
          bin2=0;
          printf("%d\t",bin2);
          else
          if(dec%2==1)
          dec=dec-1;
          bin2=1;
          printf("%d\t",bin2);
          dec=dec/2;
    }
    {
          if(dec%2==0)
          bin3=0;
          printf("%d\t",bin3);
          else
          if(dec%2==1)
          dec=dec-1;
          bin3=1;
          printf("%d\t",bin3);
          dec=dec/2;
    }
    {
          if(dec%2==0)
          bin4=0;
          printf("%d\t",bin4);
          else
          if(dec%2==1)
          dec=dec-1;
          bin4=1;
          printf("%d\t",bin4);
          dec=dec/2;
          printf("\n");
    }
          printf("Riavviare il programma?\n");
          scelta=getch();
    }
          while((scelta=='s')||(scelta=='S'));
    }
    Volevo verificare se è possibile farlo in C, io ho iniziato a fare il programma in questo modo, ma non riesco a capire come mai non mi parte (Lo so che non posso mettere un else dopo due direttive ma solo da una)
    Sto impazzendo!


    OutTopic:L'altra volta quando vi ho chiesto del ciclo do avevate ragione era una sciocchezza, una sciocchezza che il prof si era dimenticato di spiegare, ad ogni modo vi do ragione, in fondo è scocciante stare dietro ad un principiante a ripetere le sciocchezze più assurde, vi do ragione e chiedo scusa per questo breve OutTopic.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma perché non utilizzi i cicli per la conversione?

    E poi guarda che il codice che vuoi eseguire per una if va racchiusa tra parentesi

    codice:
    if(...)
    {
     ...
    }
    else
    {
     ...
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    ...per capirci, vorresti creare una funzione che, dato un intero, lo traduce nella corrispondente sequenza binaria di 0 ed 1¿

    codice:
    extern void dec2bin(unsigned int, char *);
    
    void dec2bin(unsigned int inp, char *bin){
    	int i, *p = &inp;
    	for(i = 8*sizeof(inp)-1; i >= 0; i--)
    		*(bin+i) = (*p>>i)&1;
    }
    
    int k = 0;
    for(; k < 10; k++){
    	int j, nr = rand()%1000;
    	char *bin = (char *)calloc(32, sizeof(char));
    	dec2bin(nr, bin);
    	printf("%d\t");
    	for(j = 31; j >= 0; j--)
    		printf("%d", *(bin + j));
    	printf("\n");
    	}
    
    383	00000000000000000000000101111111
    886	00000000000000000000001101110110
    777	00000000000000000000001100001001
    915	00000000000000000000001110010011
    793	00000000000000000000001100011001
    335	00000000000000000000000101001111
    386	00000000000000000000000110000010
    492	00000000000000000000000111101100
    649	00000000000000000000001010001001
    421	00000000000000000000000110100101
    Robaccia dell'esame di architettura degli elaboratori...
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da infinitejustice
    Robaccia dell'esame di architettura degli elaboratori...
    Sì ... ma il codice di LightSoul94 ha problemi ben più gravi che denotano problematiche di base ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da oregon
    Sì ... ma il codice di LightSoul94 ha problemi ben più gravi che denotano problematiche di base ...
    ahahah già xD ad ogni modo complimenti per l'idea sul while non ci avevo pensato, mi butto subito nella costruzione dell'algoritmo

  6. #6
    C'è l'ho fatta
    ora vorrei sapere cosa intendevi con ciclo perché col while mi usciva la "stringa infinita"...









    codice:
    #include <stdio.h>
    #include <stdbool.h>
    main()
    {
          int dec,bin1,bin2,bin3,bin4;
          char scelta,s,S;
          do
    {
          printf("--------------------------------------------------------------------------------");
          printf("Inserire il numero decimale da convertire in binario:");
          scanf("%d",&dec);
    {      
          if(dec%2==0)
    {
          bin1=0;
          dec=dec/2;
    }
          else
          if(dec%2==1)
    {
          bin1=1;
          dec=dec-1;
          dec=dec/2;
    }
    }
    {      
          if(dec%2==0)
    {
          bin2=0;
          dec=dec/2;
    }
          else
          if(dec%2==1)
    {
          bin2=1;
          dec=dec-1;
          dec=dec/2;
    }
    }
    {      
          if(dec%2==0)
    {
          bin3=0;
          dec=dec/2;
    }
          else
          if(dec%2==1)
    {
          bin3=1;
          dec=dec-1;
          dec=dec/2;
    }
    }
    {      
          if(dec%2==0)
    {
          bin4=0;
          dec=dec/2;
    }
          else
          if(dec%2==1)
    {
          bin4=1;
          dec=dec-1;
          dec=dec/2;
    }
    }
          printf("%d       %d       %d       %d",bin4,bin3,bin2,bin1);
          printf("\n");
          printf("Riavviare il programma?\n");
          scelta=getch();
    }
          while((scelta=='s')||(scelta=='S'));
    }

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    No ... non ce l'hai fatta .... non hai capito ... l'hai visto il codice che ti ha mostrato infinitejustice?

    Ti sembra che ci siano tutte quelle if tutte eguali ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Originariamente inviato da oregon
    No ... non ce l'hai fatta .... non hai capito ... l'hai visto il codice che ti ha mostrato infinitejustice?

    Ti sembra che ci siano tutte quelle if tutte eguali ?
    Ma come a me gira o_O hai provato a testarlo? a me funziona!

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non è questione di girare o non girare ... potevi farlo anche di duemila righe e girava lo stesso, ma le duemila righe non erano giustificate ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    ok vabene scs se non ho fatto a modo tuo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.