Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Tipi di dato unsigned

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    13

    Tipi di dato unsigned

    ciao a tutti!
    ho necessità di operare su variabili di tipo long ma unsigned.
    qualcuno sa come dichiararle/gestirle?

    grazie a chiunque risponda!:-)
    b4kk3
    UniSi.it CS Department

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

    Re: Tipi di dato unsigned

    Originariamente inviato da b4kk3
    ho necessità di operare su variabili di tipo long ma unsigned.
    qualcuno sa come dichiararle/gestirle?
    In Java l'unico tipo di dato primitivo che è unsigned è il char, a 16 bit che può avere valori tra 0 e 65535 (ed appunto serve generalmente per i caratteri). Gli altri tipi di dati sono tutti signed.

    Spiega meglio la tua necessità.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    13
    Beh, sempre in riferimento al programmino che dovevo fare (forse ti ricordi) per la moltiplicazione modulare, ho problemi con il complemento a due...cioè quando faccio il riporto del carry e lo faccio scorrere in avanti sommando e risommando, può capitare che alcuni numeri all'interno della stringa risultante diventino negativi perchè c'è considerato anche il bit di segno...quindi dovrei trovare il modo di non considerare quel bit...e il miglior modo per farlo è avere tipi di dato unsigned!:-(
    b4kk3
    UniSi.it CS Department

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da b4kk3
    Beh, sempre in riferimento al programmino che dovevo fare (forse ti ricordi) per la moltiplicazione modulare
    Ahhh sì, mi ricordo.

    Originariamente inviato da b4kk3
    ho problemi con il complemento a due...cioè quando faccio il riporto del carry e lo faccio scorrere in avanti sommando e risommando, può capitare che alcuni numeri all'interno della stringa risultante diventino negativi perchè c'è considerato anche il bit di segno...quindi dovrei trovare il modo di non considerare quel bit...e il miglior modo per farlo è avere tipi di dato unsigned!:-(
    Facciamo intanto una premessa: devi tenere il segno del tuo "big number" separato dall'array di "parole" (se ben ricordo ti avevo suggerito di usare degli int) che contiene il valore.

    Il BigInteger di Java è fatto così:

    codice:
    ...
    public class BigInteger extends Number implements Comparable<BigInteger> {
        /**
         * The signum of this BigInteger: -1 for negative, 0 for zero, or
         * 1 for positive.  Note that the BigInteger zero must have
         * a signum of 0.  This is necessary to ensures that there is exactly one
         * representation for each BigInteger value.
         *
         * @serial
         */
        int signum;
    
        /**
         * The magnitude of this BigInteger, in big-endian order: the
         * zeroth element of this array is the most-significant int of the
         * magnitude.  The magnitude must be "minimal" in that the most-significant
         * int (<tt>mag[0]</tt>) must be non-zero.  This is necessary to
         * ensure that there is exactly one representation for each BigInteger
         * value.  Note that this implies that the BigInteger zero has a
         * zero-length mag array.
         */
        int[] mag;
    ....
    Come vedi, segno e valore sono separati.

    Per fare le somme tra 2 int, li devi convertire in long ma facendo in modo che la parte alta del long sia a 0. In questo modo il long del risultato NON verrà mai negativo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    13
    ti ringrazio, i tuoi consigli mi sono sempre d'aiuto!;-)
    ok, ci provo!
    b4kk3
    UniSi.it CS Department

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.