IProgrammatori.it

Forum programmazione

Forum di supporto alla programmazione in generale e nei principali linguaggi.

Oggi è sab lug 31, 2010 6:41 pm

Tutti gli orari sono UTC + 2 ore




   [ 6 messaggi ] 
Autore Messaggio
 Oggetto del messaggio: Convertire in Binario
MessaggioInviato: gio nov 09, 2006 12:00 am 
Diagramma a Blocchi
Avatar utente
Iscritto il: dom lug 02, 2006 4:15 pm
Messaggi: 209

Dunque l'algoritmo è molto semplice:

# Abbiamo il nostro numero da convertire . Esempio: 37.

# Cominciamo con il metodo delle divisioni successive. Per 2.

# Continuiamo fino a che il quoziente non diviene 0.

37 | 16 | 9 | 4 | 2 | 1 | 0
1 | 0 | 1 | 0 | 0 | 1 | 0 <--- i resti delle divisioni

#Il numero convertito binario va letto al contrario, quindi: 100101.


enjoy.

_________________
Bit ha scritto:
Ma sisi cosa? che ca**o c'è da ridere? bha


Dead on my sweet Piano.


IO NON SONO AMICO DI GOOGLE


   
 Oggetto del messaggio:
MessaggioInviato: gio nov 09, 2006 12:18 am 
Admin
Avatar utente
Iscritto il: mar giu 06, 2006 4:00 pm
Messaggi: 2299
Località: Italia

Interessante :D
edit
in C eccolo:
Codice:
#include <stdio.h>
int main()
{
   int a,b,c;
   printf("Numero:");
   scanf("%d",&a);
   while(a!=0){
   b=a/2; 
   c=a%2;
   a=b;
   printf("%d",c);
   }
  }

Ora voglio vedere se riesco a farlo in modo che lì ordini,direttamente ;)

_________________
Big-Bug cerca collaboratori.
Cerca di scrivere con un italiano corretto.


   
 Oggetto del messaggio:
MessaggioInviato: gio nov 09, 2006 12:11 pm 
Diagramma a Blocchi
Avatar utente
Iscritto il: dom lug 02, 2006 4:15 pm
Messaggi: 209

Codice:
Program binari;
var n,i:integer;
    s:string;
procedure binario(a:integer;var x:string); //interfaccia della procedura
var r:byte;
    r1:string;
begin
     while a <> 0 do
     begin
          r:=a mod 2;
          if r = 0 then r1:='0'
                   else r1:='1';
          x:=x+r1;
          a:=a div 2;
     end;
end;

begin
     write('Introduci il numero binario: ');
     readln(n);
     s:='';
     binario(n,s);
     for i:=length(s) downto 1 do write(s[i]);
     readln
end.

{OUTPUT

Introduci il numero binario: 37
100101

}

_________________
Bit ha scritto:
Ma sisi cosa? che ca**o c'è da ridere? bha


Dead on my sweet Piano.


IO NON SONO AMICO DI GOOGLE


   
 Oggetto del messaggio:
MessaggioInviato: gio nov 09, 2006 12:39 pm 
Help Programmer
Avatar utente
Iscritto il: sab lug 29, 2006 11:58 am
Messaggi: 66
Località: Milano

Ecco un piccolo programmino fatto da me e mattias ;)

Codice:
#include <iostream>
#include <stdio.h>
#include <conio.h>

using namespace std;

int main(int N, int P){
   
    /* Imposta il titolo della finestra DOS */   
    system("TITLE CONVERTITORE DA DECIMALE A BINARIO - Magic890 e mattias");
   
    while (1){ /* Inizia un ciclo infinito */
   
    /* Imposto i valori delle variabili e pulisco lo schermo */   
    P=1; N=0;
    system("cls");
   
    /* Grafica */   
    cout << "######################################" << endl;
    cout << "# CONVERTITORE DA DECIMALE A BINARIO #" << endl;
    cout << "######################################" << endl;
    cout << "#         Magic890 e mattias         #" << endl;
    cout << "######################################" << endl << endl;
   
    cout << "Inserisci un numero decimale: ";
    cin >> N;
    /* Con il ciclo sottostante trovo la potenza di 2 immediatamente
       maggiore del numero N */
    while (P<N) P*=2;
    P/=2;
    cout << "Valore in binario: ";
    do {
        if (N>=P){
                  cout << "1";
                  N-=P;
        }
        else cout << "0";
    /* Se il valore corrente di N è maggiore della potenza di 2 corrente
       visualizzo l e diminuisco N di una quantità pari al valore della
       potenza altrimenti visualizzo 0 */
    P/=2;
    /* Aggiorno la potenza corrente fino a quando esistono potenze di 2 */
    } while (P !=0);
   
    cout << "\n\n - Premere Invio per continuare -";
    getch();
    } /* Chiusura del ciclo while iniziale */
   
    return EXIT_SUCCESS;
}


   
 Oggetto del messaggio:
MessaggioInviato: gio nov 16, 2006 5:44 pm 
Admin
Avatar utente
Iscritto il: mar giu 06, 2006 4:00 pm
Messaggi: 2299
Località: Italia

Codice:
/*
   Nome: Dec2Bin
   Autore: Mr.Keit
   Descrizione: Converte da Base 10 a Base 2
   Compilatore: Gcc
*/

#include <stdio.h>
int main()
{

    int a,b,i;
    int vett[200];
       printf("Numero:");
      scanf("%d",&a);
                 
       for(i=0;a!=0;i++)  /* Con questo ciclo aggiungo a%2 ad un vettore,dove i sono gli elem  del vettore,cioè il numero di div eff*/
         
       {
           b=a/2;
              vett[i]=a%2;      /*Aggiungo gli elementi al vettore ^^ */
               a=b;
            }

        for(i=i-1;i>=0;i--) /* Con questo ciclo stampo tutti gli elementi del vettore invertiti ^^ */
   
      {
         printf("%d",vett[i]);
      }   


}


^^

_________________
Big-Bug cerca collaboratori.
Cerca di scrivere con un italiano corretto.


   
 Oggetto del messaggio: Re: Convertire in Binario
MessaggioInviato: lun gen 12, 2009 11:13 pm 
Newbies
Iscritto il: lun gen 12, 2009 7:21 pm
Messaggi: 6

Codice:
/*
    CONVERSIONE DI UN NUMERO DALLA BASE DECIMALE A QUELLA BINARIA
   
    ALGORITMO:
        1- Inserisci il numero
        2- Dividi per 2
        3- Memorizza il resto
        4- Ripeti fino a quando il numero non è zero
        5- Stampa a video il resto totale
*/
import javax.swing.*;
import java.*;
public class BinaryConversion{
    public static void main(String args[]){
       
        String resto = "";
        int quotz;
       
        //Ricevo il numero in input dall'utente
        quotz = Integer.parseInt(JOptionPane.showInputDialog("Numero:"));
        //System.out.println(quotz);
       
        do{
            System.out.println("Hai inserito :\t"+quotz);
           
            resto += quotz % 2; //Attacco alla stringa i vari resti
           
            quotz /= 2; //Divido la variabile quoziente
           
            System.out.println("Diviso 2 =\t"+quotz);
            System.out.println();
           
            }while(quotz != 0); //Controllo che il numero sia ancora da dividere
           
            //Stampo la stringa al contrario......
            System.out.print("Ed in binario :\t");
            for(int i=resto.length();i>0;i--)
                System.out.print(resto.charAt(i-1));
           
            System.out.println();
           
            System.exit(0);
    }
}


è fatto in java........forse un pò troppo lungo??e soprattutto la trovata di girare la stringa è poco pulita??
vabè intanto funonzia!!! :mrgreen:


   
Visualizza ultimi messaggi:  Ordina per  
   [ 6 messaggi ] 

Tutti gli orari sono UTC + 2 ore


 Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a: