Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    30

    Criptazioni di caratteri

    Perché questo programma stampa come output lo spazio quando invece con i parametri che passo nel main dovrebbe stampare 'a'?

    [code] class Criptazione {
    private char carattereNormale;
    private char carattereCriptato;
    private char chiave;

    public Criptazione(char aChiave, char aCarattere) {
    carattereNormale=aCarattere;
    chiave=aChiave;
    }
    public void criptazione(){
    int sommaCaratteri=((int)(carattereNormale)+(int)(chia ve)-(int)'a');
    if(sommaCaratteri<=(int)'z'){
    carattereCriptato=(char)sommaCaratteri;
    }
    else{
    carattereCriptato=(char)(sommaCaratteri-(int)'z');
    }
    System.out.println(carattereCriptato);
    }
    }



    public class Test {

    public static void main(String[] args) {
    Criptazione matematico=new Criptazione('b','z');
    matematico.criptazione();
    }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Hai le idee un pò confuse...o non ti è chiara la tabella ASCII.

    Il codice va postato nei tag code

    Tu esegui questo:

    (b+z) - a = {
    (98+122) - 97 = 123

    Qui controlli se il valore che ottieni è minore o uguale a 'z'...ma è maggiore, quindi esegue l'else. Eseguendo l'else, al 123 togli 'z', quindi diventa 123-122 = 1 [carattere non stampabile]

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    30
    Grazie mille, adesso gira, è che non pensavo la tabella ascii fose strutturata nel modo in cui effettivamente è(proprio come dicevi tu). Grazie mille ancora.

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.