Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684

    Rappresentazione numeri

    Salve a tutti...
    come faccio a rappresentare un numero del genere???
    (2123^5069) mod (89*97)

    il risultato è della potenza è
    2,0394845864212709590275242722367e+16864
    e non ci sta neanche nei double!!!!

    Grazie mille
    Oppa

  2. #2
    Lo puoi approssimare o se ti serve solo da visualizzare puoi sempre inserirlo in una stringa.

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  3. #3
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684
    non posso approssimarlo e non posso metterlo in una stringa...
    da questa espressione ( (2123^5069) mod (89*97) ) io devo avere un numero intero che (sicuramente) sarà compreso tra 0 e 99!!

    (è l'algoritmo per decifrare del RSA!)

    grazie
    Oppa

  4. #4
    beh un numero preciso non lo puoi avere...quindi...ho lo tieni così come ti esce con un double...altrimenti potresti fare un tentativo con una variabile di tipo long però cavolo la vedo dura con tutti i numeri che ci sono. :master:

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  5. #5
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684
    Nei tipi "convenzionali" di java non ci sta!
    Non posso approssimarlo e non posso metterlo in una stringa perchè su quel numero devo fare delle operazioni!

    Oppa

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Spero che sia solo a scopo didattico, visto che le classi crypto e il pacchetto BouncyCastle hanno già tutto quel che serve per manipolare i vari sistemi di cifratura. Comunque, usa BigInteger

    es:

    codice:
    import java.math.BigInteger;
    ....
    ....
    .
    .
    .
    BigInteger base = new BigInteger("2123");
    BigInteger exp = new BigInteger("5069");
    BigInteger mod = BigInteger.valueOf(89*97);
    BigInteger result = base.modPow(exp, mod);
    System.out.println("Modulo: "+result.toString());
    Curiosità: 2123^5069
    http://www.andrea79.altervista.org/h...23%5E5069.html
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684
    Si si...è a scopo didattico! devo far vedere passaggio per passaggio come funziona l'RSA!

    BigInteger base = new BigInteger(valore);
    BigInteger exp = new BigInteger(d);
    BigInteger mod = BigInteger.valueOf(num);
    BigInteger result = base.modPow(exp, mod);
    System.out.println("Modulo: " + result.toString());

    Mi da questo errore:

    E:\Codici\Rsa\Rsa.java:391: BigInteger(long) has private access in java.math.BigInteger
    BigInteger base = new BigInteger(valore);

    Grazie mille
    Oppa

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Se ho passato Stringhe ai vari costruttori un motivo ci sarà.
    Altrimenti usa il metodo statico BigInteger.valueOf(long) come ho fatto più sotto per il prodotto.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it L'avatar di power83
    Registrato dal
    Oct 2002
    Messaggi
    684
    grazie
    Oppa

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Prego
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.