Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-11-2003, 16:17   #1
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
[Java] int byte bit shift...@#?!!

Vorrei cambiare il valore del quarto byte di un int;

la domanda è, devo per forza azzerare il valore precedente degli ultimi 8 bit e poi reimpostarli o c'è un modo per sostituirli che non richieda un doppio shift sinistro-destro di 8 bit?

Per intenderci:

c=((c<<8)>>8)+(x+1<<24);

dove "c" è l'int da "operare" e x un altro int da cui prendo gli 8 bit per la sostituzione.

E' inguardabile!

Grazie &Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2003, 16:31   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Puoi azzerare il byte da sostituire con una AND...

c = (c & 0xffffff) || (x << 24);
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2003, 16:38   #3
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Mi sento un po' stupido, ho usato l'AND nelle 5 righe sopra e alla sesta ho dimenticato che esistesse...

Grazie Cionci, sei il mio salvatore!

&Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2003, 16:45   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Figurati...no problem...
Comunque quel codice presuppone la diemensione degli int... Si può cercare di farci qualche lavoretto sopra per non tenerne conto...

c = (c & (~(0xff << (sizeof(int)-1)*8)) || (x << (sizeof(int)-1)*8));
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2003, 16:51   #5
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Fortunatamente in Java gli int hanno dimensione fissa (32bit).

Il sizeOf invece è una cosa che invidio da morire (sopratutto per gli oggetti, se non sbaglio c'è una versione anche per quelli forse in c++), scoprire quanta memoria si consuma è un terno al lotto
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2003, 16:55   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sì...funziona anche sugli oggetti...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2003, 14:12   #7
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
tratto da Javaworld ti posto questo empirico metodo per calcolare la dimensione di oggetti di una tua classe.

basta che sostituisci a Object la classe che ti interessa.

ripeto: empirico, serve solo per farsi un idea

Codice:
public class Sizeof
{
    public static void main (String [] args) throws Exception
    {
        // Warm up all classes/methods we will use
        runGC ();
        usedMemory ();

        // Array to keep strong references to allocated objects
        final int count = 100000;
        Object [] objects = new Object [count];
        
        long heap1 = 0;

        // Allocate count+1 objects, discard the first one
        for (int i = -1; i < count; ++ i)
        {
            Object object = null;
            
            // Instantiate your data here and assign it to object
            
            object = new Object ();
            //object = new Integer (i);
            //object = new Long (i);
            //object = new String ();
            //object = new byte [128][1]
            
            if (i >= 0)
                objects [i] = object;
            else
            {
                object = null; // Discard the warm up object
                runGC ();
                heap1 = usedMemory (); // Take a before heap snapshot
            }
        }

        runGC ();
        long heap2 = usedMemory (); // Take an after heap snapshot:
        
        final int size = Math.round (((float)(heap2 - heap1))/count);
        System.out.println ("'before' heap: " + heap1 +
                            ", 'after' heap: " + heap2);
        System.out.println ("heap delta: " + (heap2 - heap1) +
            ", {" + objects [0].getClass () + "} size = " + size + " bytes");

        for (int i = 0; i < count; ++ i) objects [i] = null;
        objects = null;
    }

    private static void runGC () throws Exception
    {
        // It helps to call Runtime.gc()
        // using several method calls:
        for (int r = 0; r < 4; ++ r) _runGC ();
    }

    private static void _runGC () throws Exception
    {
        long usedMem1 = usedMemory (), usedMem2 = Long.MAX_VALUE;
        for (int i = 0; (usedMem1 < usedMem2) && (i < 500); ++ i)
        {
            s_runtime.runFinalization ();
            s_runtime.gc ();
            Thread.currentThread ().yield ();
            
            usedMem2 = usedMem1;
            usedMem1 = usedMemory ();
        }
    }

    private static long usedMemory ()
    {
        return s_runtime.totalMemory () - s_runtime.freeMemory ();
    }
    
    private static final Runtime s_runtime = Runtime.getRuntime ();

} // End of class
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2003, 14:45   #8
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Ero a conoscenza della "media" fatta con un ciclo simile (anzi, forse era proprio quello ), il problema è che mi è sempre sembrato un po' troppo gravoso per una valutazione fatta in un'applicazione in funzionamento, anche se non ho mai provato una stima "al volo".

Cmq grazie per la segnalazione, la gestione della memoria della jvm è un argomento piuttosto interessante, fa sempre bene vedere qualche riga che se ne occupa

&Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Le migliori 27 offerte Amazon, per categ...
Windows 11, Microsoft blocca l'update KB...
Guerra sui codec video: Dolby contro Sna...
Monitor gaming in offerta Amazon: da 99€...
Sony blocca le schede di memoria in Giap...
Lavatrice, asciugatrice e frigorifero: i...
Lamborghini e Moza insieme: la replica d...
Cupra aggiorna la Tavascan: nuova versio...
Commissione Europea sotto attacco: sottr...
L'AI ricostruisce le regole di un gioco ...
Arox lancia AX-HP: il microcontrollore i...
Borderlands 4, polemica su Steam: recens...
I PC Windows si bloccano 3 volte in più ...
Microsoft chiude la campagna 'This is an...
Comprare un PC sta diventando un lusso? ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:19.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v