Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    28

    [Java] Conversione numero con classe math.pow

    Salve a tutti,questo esempio di conversione da un intero ad un binario utilizza la classe math.pow x leggere un numero intero positivo in base 10 (compreso tra 0 e 2^7-1) calcolando le 8 cifre binarie.

    public class numerobin {
    public static void main(String[] args){
    int numero, cifra, n = (int)Math.pow(2, 7);
    char c;
    numero = Console.leggiIntero(); // L'esempio è fatto con il numero 67
    for (int i = 7; i >=0; i--)
    { cifra = numero/n;
    c = (char)(cifra+'0');
    numero %=n; n/=2;
    Console.scriviUnCarattere(c);
    }
    Console.nuovaLinea();
    }
    }

    Provo a spiegare cosa ho capito:
    La variabile n è uguale ad un intero elevato a potenza (quindi 2^7)

    Il ciclo for mi dice k se i=7 ed i>=0 i viene decrementata di 1
    Nel corpo troveremo:
    cifra = 67/2^7 = 0,45 = 0
    c = (char) (0+'0')
    numero= 67%2^7= 67
    n= 2^7/2= 64

    Non credo siano i calcoli giusti anche perchè dopo non so piu come andare avanti.
    La conversione da intero a binario ho capito come si fa, basta dividere il numero /2; nle nostro caso se utilizzo 67:
    67/2=33=1
    33/2=16=1
    16/2=8=0
    8/2=4=0
    4/2=2=0
    2/2=1=0
    1/2=0=1
    ris binario=1100001
    Ma nel caso k vi ho esposto non riesco a trovare una logica k mi permetta di capire il suo funzionamento.
    Andando a senso nelle ultime due operazioni nel corpo del for:
    numero= 67%2^7= 67
    n= 2^7/2= 64
    Dovrei cambiare il valore del secondo n:
    numero= 67%2^7= 67
    n= 67/2= 33 // quindi con questo numero ricominciare il ciclo dall'inizio

    Inoltre vorrei capire:
    for (int i = 7; i >=0; i--)// come faccio a capire k l'int i = 7 è riferito ad n e della classe
    math.pow e quinidi al ^7?

    Scusate x la lungaggine della domanda..
    Grazie

  2. #2
    Utente di HTML.it L'avatar di progAnd
    Registrato dal
    Jan 2012
    Messaggi
    119
    Qui c'è un algoritmo che dovrebbe essere di facile implementazione. Vedi se ti può essere utile.

    Ciao

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.