giovedì 5 novembre 2009

Convertire un intero in binario metodo 2 (Java)

Questo esercizio sfrutta il classico algoritmo per la conversione da intero a base 10 a binario che si ottiene dai resti della divisione per 2.

ad esempio(esempio tratto da questo sito):

Dato un numero 8 calcoliamo il codice binario

1)8/2 = 4 ; quindi sarà 0
2)4/2 = 2 ; quindi sarà 0
3)2/2 = 1 ; quindi sarà 0
4)1/2 = 0.5 ; quindi sarà 1

Il codice del valore 8 sarà : 1000 (i numeri poi si scrivono in senso inverso al quale si sono trovati).

Purtroppo questo programma al momento non è in grado di calcolare i numeri negativi a causa del complemento a due! Bisogna implementare un po il codice che ho messo tra /* */ (per il momento non ne ho ne voglia ne tempo.. se ci vuole lavorare qualcuno, mi farebbe un grande favore se mi restituisse la soluzione!)

Passiamo al codice:

  1. public class Bincon3

  2. {

  3.    public static void main (String[] args)

  4.    {

  5.       int a = 6;

  6.       int cont = 0;

  7.       if (a>=0)

  8.       {

  9.          int ax = a;

  10.          while (ax != 0)

  11.          {

  12.             int cifra = ax%2;

  13.             ax /=2;

  14.             cont++;// non indispensabile

  15.             System.out.println(cifra);

  16.          }

  17.          while (cont!=32)// non indispensabile

  18.          {

  19.             cont++;

  20.             System.out.println(0);

  21.          }

  22.       }

  23.       else

  24.       {

  25.          System.out.println("al momento non sono in grado di convertire un numero intero negativo in cifra binaria");

  26.          /*int ay = -a;

  27.          while (ay != 0)

  28.          {

  29.             int cifra = ay%2;

  30.             ay /=2;

  31.             cont++;

  32.             if (cifra != 0)

  33.                System.out.println(0);

  34.             else

  35.                System.out.println(1);

  36.            

  37.          }

  38.          while (cont!=32)

  39.          {

  40.             cont++;

  41.             System.out.println(1);

  42.          }*/

  43.       } //da implementare la somma di uno! incompleto

  44.    }

  45. }

  46.  



Un metodo alternativo valido per i numeri negativi è disponibile quì

Potete trovare tutti i miei programmi quì.

Nessun commento:

Posta un commento