Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JAVA] Da decimale a binario

    Ciao ragazzi,
    sono uno studente di III Informatica e ho un piccolo problema.

    Ho un compito da fare, che chiede testualmente di convertire un numero positivo di 16 bit dalla base decimale alla base binaria tramite ciclo usando il metodo AND bit a bit (quindi niente metodi già impostati). In classe ne abbiamo fatto uno piu' elementare, che recitava:

    codice:
    [...]
    
    BufferedReader key = new BufferedReader(new InputStreamReader(System.in));
    int n = 0;
    n = Integer.parseInt(key.readLine());
    if(n <= 255){
    if( ( n & 0x80) == 0)
    	System.out.print("0");
    else
    	System.out.print("1");
    if( ( n & 0x40) == 0)
    	System.out.print("0");
    else
    	System.out.print("1");
    if( ( n & 0x20) == 0)
    	System.out.print("0");
    else
    	System.out.print("1");
    if( ( n & 0x10) == 0)
    	System.out.print("0");
    else
    	System.out.print("1");
    if( ( n & 0x08) == 0)
    	System.out.print("0");
    else
    	System.out.print("1");
    if( ( n & 0x04) == 0)
    	System.out.print("0");
    else
    	System.out.print("1");
    if( ( n & 0x02) == 0)
    	System.out.print("0");
    else
    	System.out.print("1");
    if( ( n & 0x01) == 0)
    	System.out.print("0");
    else
    	System.out.print("1");
    }
    
    [...]
    Ma ora mi trovo un po' in difficoltà nell'impostare il ciclo. Qualcuno sa darmi una mano? Grazie anticipatamente.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Da decimale a binario

    Originariamente inviato da aur0n
    Ma ora mi trovo un po' in difficoltà nell'impostare il ciclo. Qualcuno sa darmi una mano?
    Vedi bene nel codice sopra che fai una AND tra il valore 'n' e una costante che ha sempre e solo 1 bit a 1, man mano spostato a destra di un bit.

    Basta che metti una variabile che fa da "maschera", impostata inizialmente ad un valore che ha 1 solo bit a 1 (es. 0x80 se vuoi farlo su 8 bit) e poi fai un ciclo for per N volte (8 ad esempio). Nel ciclo farai una AND praticamente come hai fatto sopra e sposterai la maschera di un bit a destra con l'apposito operatore di shift (che è >> ma se vuoi farlo su 32 bit usa lo shift unsigned che è >>>).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2025 vBulletin Solutions, Inc. All rights reserved.