Passare long all'operatore %

di il
7 risposte

Passare long all'operatore %

Buongiorno a tutti, Sto tentando di scrivere un programmino per il calcolo dei numeri primi ma l'operatore resto della divisione fra interi non accetta parametri long come argomenti.
Esiste il modo di superare il problema? Secondo voi naturalmente.

Ciao a tutti e grazie: Luca

7 Risposte

  • Re: Passare long all'operatore %

    Certo che si può usare long. Hai studiato la binary numeric promotion ?
  • Re: Passare long all'operatore %

    No, solo promotion e demotion da int a long ecc. e viceversa.
  • Re: Passare long all'operatore %

    Dunque: ho letto velocemente l'articolo del sito della SUN sulla binary arithmetic promotion e il richiamo alle operazioni moltiplicative, tra cui il modulo.
    Però, a parte il chiarimento sui segni dei risultati e i risultati dell'applicazione dell'operazione "modulo" a dei double, non sono riuscito a capire come possa permettere di passare degli argomenti long a tale operatore.
    Il mio inglese, chiaramente, non è all'altezza di un compito così arduo.
  • Re: Passare long all'operatore %

    Un long % un long dà un long.
    Un long % un int dà un long.
    Un int % un long dà un long.
    Un long % un short dà un long.
    ecc..

    (questa è la binary numeric promotion, se uno dei due è long e l'altro più piccolo, quest'ultimo viene portato a long per fare l'operazione)

    Quindi quale sarebbe il dubbio? Assegnare poi a un int? Allora serve un cast ...
  • Re: Passare long all'operatore %

    Ah, allora era già chiaro, però:
    while(NN % Serie[t] != 0)
                t++;
    
    NetBeans, quando tento di scrivere questo, con la variabile "long NN;" e"long t;" mi indica: "incompatible types: possible lossy convertion from long to int".

    Mah!
  • Re: Passare long all'operatore %

    L'indice da usare in un array deve essere int (o convertibile implicitamente a int oppure convertibile esplicitamente con cast a int). Non può essere un long.

    Serie[t] allora t DEVE essere un int.

    Tutto questo non c'entra nulla con il %
  • Re: Passare long all'operatore %

    Grazie mille. Per arrivarci da solo ci avrei spese dei giorni.
Devi accedere o registrarti per scrivere nel forum
7 risposte