Conversione decimale-binario

Stato
Discussione chiusa ad ulteriori risposte.

R4z0r_Cr4sH

Utente Electrum
10 Giugno 2007
501
11
6
148
Dato in input (da tastiera o come parametro) un numero intero positivo,convertirlo binario restituendo (tramite stampa o ritorno di parametro) in valore binario.Ad esempio se inseriamo il numero 10 ci deve ritornare 1010.

in java :D :
Codice:
public void DecimalToBinary(int numd){
        String ri="";
        while(numd>0){
            if(numd%2==0){
                ri=0+ri;  
            }else{
                ri=1+ri;
            }
            numd/=2;
        }
        System.out.println(ri);
    }
 
In D:

Veloce
Codice:
import std.stdio;
import std.string;
import std.conv;

int main(string[] args) {
	writefln("%s", std.string.toString(cast(long)std.conv.toInt(args[1]), 2u));
	return 0;
}
Normale
Codice:
import std.stdio;
import std.string;

int main(string[] args) {
	int a=0;
	uint r=0;
	string s="";
	scanf("%d",&a);
	do {
		r=a%2;
		a/=2;
		s~=std.string.toString(r);
	}while(a);
	writefln("%s",s.reverse);
	return 0;
}
 
[ot]il problema è un pelino più cattivo sui linguaggi che dichiarano varibili generiche e non di tipo int :D...[/ot]
 
R4z0r_Cr4$H ha detto:
simogeta a noi interessa il codice di cosa richiede l'esercizio...la grafica la fai in un niente...!

si esatto io glielo fornita.....
ma solo pe renderlo più accativante ecc.....
ma prima gli ho fornito un codice affidabile e sicuro
 
simogeta ha detto:
R4z0r_Cr4$H ha detto:
simogeta a noi interessa il codice di cosa richiede l'esercizio...la grafica la fai in un niente...!

ops mi sono scordato il tag [ot]... cmq logico che interessa il codice....
[ot]senza di quello vediamo come converte :asd::asd: [/ot]
comunque non fa niente
[ot]ps al mio vrutal.java niente interfaccia grafica
è un semplice progetto per il brutalforce di una frase (MAX 5 c. ) e numeri
appena lo finisco posto il codice
[/ot]
 
lo voglio fare io IN PHP!!
premessa: per la fretta (ho da fare sta sera) ho messo come grafica i primi 2 colori che mi sono venuti in mente e volendo si possono eliminare le 2 pagine a fare due TEXT in cui si mettono i numeri. solo che ho poco tempo XD quindi una cosa rapida è questa:
PRIMA PAGINA: rileva solo i dati e li invia...
PHP:
<html>
<head>
<title>DEC--->BIN</html>
</head>
<body
bgcolor="violet"
text="blue"
>
<form action="calcola.php" name="calc">
NUMERO IN BASE 10<br>
<input type="text" name="deci">
<input type="submit" name="vai" value="CONVERTI">
</body>
</html>


2 pagina: converte
PHP:
<html>
<head>
<title>DEC--->BIN</html>
</head>
<body
bgcolor="violet"
text="blue"
>
<?php
/****************************************************************************
*NOME = cavolatina fatta in 4 minuti    
*AUTORE = Dark Flash      
*LICENZA = GPL   non che sta cavolata necessiti di licenza ma non si sa mai... 
*****************************************************************************/
$d = $_GET['deci'];
$b = decbin($d);
print "$b"
?>
<br><a href=".NO SPAM!!">FANNE UN ALTRO!</a>
</body>
</html>
 
Dark Flash ha detto:
lo voglio fare io IN PHP!!
premessa: per la fretta (ho da fare sta sera) ho messo come grafica i primi 2 colori che mi sono venuti in mente e volendo si possono eliminare le 2 pagine a fare due TEXT in cui si mettono i numeri. solo che ho poco tempo XD quindi una cosa rapida è questa:
PRIMA PAGINA: rileva solo i dati e li invia...
PHP:
<html>
<head>
<title>DEC--->BIN</html>
</head>
<body
bgcolor="violet"
text="blue"
>
<form action="calcola.php" name="calc">
NUMERO IN BASE 10<br>
<input type="text" name="deci">
<input type="submit" name="vai" value="CONVERTI">
</body>
</html>


2 pagina: converte
PHP:
<html>
<head>
<title>DEC--->BIN</html>
</head>
<body
bgcolor="violet"
text="blue"
>
<?php
/****************************************************************************
*NOME = cavolatina fatta in 4 minuti    
*AUTORE = Dark Flash      
*LICENZA = GPL   non che sta cavolata necessiti di licenza ma non si sa mai... 
*****************************************************************************/
$d = $_GET['deci'];
$b = decbin($d);
print "$b"
?>
<br><a href=".NO SPAM!!">FANNE UN ALTRO!</a>
</body>
</html>

Si ma dai lo scopo di questa sezione è fare ogni cosa senza usare funzioni "pappa pronta" non puoi usare dec to bin :asd:

io ho fatto così solo che i numeri arrivano solo al 15 :asd:
PHP:
<?php
	$num=$_GET['num'];
	//Controllo che sia stato inserito un numero
	if(!$num) { 
		die();
	 }
	 
	 $num1 = $num/2;
	 $rest1 = $num%2;
	 
	 $num2= $num1/2;
	 $rest2 = $num1%2;
	 
	 $num3= $num2/2;
	 $rest3 = $num2%2;

	 $num4= $num3/2;
	 $rest4 = $num3%2;
	 
	 echo "Numero binario = ". $rest4.$rest3.$rest2.$rest1;
?>
 
Tempo fa lo feci in c++ eccovi il source.

C++:
Codice:
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    int x;
    string k;
    cout << "Inserisci un numero intero da convertire in binario:" << endl;
    cin >> x;
    cout << "Ecco il numero convertito in binario:" << endl;
    while(x)
    {
               if(x%2 == 0)
               {
               k += "0";
               }
               else
               {
                k += "1";
               };
               x = x/2;
    }
    reverse(k.begin(), k.end());
    cout << endl << k << endl;
    cout << "\n\t\t\t\t\t\t\t\tCopyright GenKs";
    fflush(stdin);
    getchar();
    return 0;
}
 
bello Genks!
@Torre1992 :
beh pensavo servisse solo per convertire XD smagari tra oggi e domani ne faccio uno senza usare il decbin! asd
 
[perl]
Codice:
#!/usr/bin/perl
print "Please insert number: ";
$num = <stdin>;
while ($num>0) {
if ($num % 2 == 0) {
$str .= 0;
} else {
$str .= 1;
}
$num = int($num/2);
}
print "The equivalent binary form is $str\n\n";

[/perl]
 
questo è un convertitore bindec-decbin

C:
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int scelta, i, bin, r[10000], bas, y, b, num;
char rit;
float dec;

main()
{
        // menu di scelta, ripetuto fino a quando l'utente non immette un valore valido
        do{
            printf("--------------------------------------------------------------------------------");
            printf("|Scegli il tipo di conversione                                                 |");
            printf("|------------------------------------------------------------------------------|");
            printf("|1.Da decimale a binario                                                       |");
            printf("|2.Da binario a decimale                                                       |");
            printf("--------------------------------------------------------------------------------");
            scanf("%d",&scelta);
            system("cls");
        } while (scelta!=1 && scelta!=2);            
            //esegue il codice per la conversione da decimale a binario
            if (scelta==1) {
                //ripete l'istruzione fino a quando il numero non è minore di 1000
                do {
                 printf("Inserisci il numero decimale minore o uguale a 1000\n");
                 scanf("%d", &num);
                 } while (num>1000);
                 b=2;
                 i=0;
                 //metodo delle divisioni successive
                 do {
                    i=i+1;
                    r[i]=num%b;
                    num=num/b;
                 } 
                 while(num!=0);
                 printf("Il risultato e' ");
                 //stampa a video il risultato
                 do {
                    printf("%d", r[i]);
                    i=i-1;
                 } while(i!=0);
                 printf("\n");
            //esegue il codice per la conversione da binario a decimale
            } else if (scelta==2) {
                printf("Inserisci il numero binario e termina la serie con un numero diverso da 0 e 1.\n");
                //inserisce il numero inserito cifra per cifra in un array
                do{
                    scanf("%d",&bin);
                    i=i+1;
                    r[i]=bin;
                } while (bin==0 || bin==1);
                bas=2;
                y=0;
                i=i-1;
                //metodo delle moltiplicazioni successive
                do {
                    dec=r[i]*pow(bas,y)+dec;
                    y=y+1;
                    i=i-1;
                } while (i>-1);
                //stampa a video il risultato
                printf("Il numero decimale e' %f\n",dec);
            }
            system("pause");
}
 
Stato
Discussione chiusa ad ulteriori risposte.