Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
OnePlus 15 nasce per alzare l'asticella delle prestazioni e del gaming mobile. Ma non solo, visto che integra un display LTPO 1,5K a 165 Hz, OxygenOS 16 con funzioni AI integrate e un comparto foto con tre moduli da 50 MP al posteriore. La batteria da 7.300 mAh con SUPERVOOC 120 W e AIRVOOC 50 W è la ciliegina sulla torta per uno smartphone che promette di offrire un'esperienza d'uso senza alcun compromesso
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-03-2007, 16:59   #1
mfonz85
Member
 
L'Avatar di mfonz85
 
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
[C] Rilevare overflow in somma/moltiplicazione

Ciao a tutti,
Altro problema da sottoporvi: l'overflow.
In un esercizio che devo fare, mi si chiede di prendere 2 numeri su 1, 2 o 4 byte ciascuno, e farci delle operazioni algebriche di base sopra: addizione, sottrazione, moltiplicazione e divisione, e inserire il risultato in una variabile delle stesse dimensioni di quelle di partenza.
Ovvero, se i due operandi sono 32 e 71, contenuti in variabili da 1 byte, e l'operazione è moltiplicazione, il risultato 32*71 deve essere inserito in una variabile di dimensione 1 byte (come gli operandi) e bisogna controllare la presenza di overflow.
Questo ragionamento và applicato a numeri su 1, 2 e 4 byte e per tutte le operazioni di base.
Ora...c'è un metodo veloce, rapido, efficace, di stra-bella programmazione per rilevare overflow in queste operazioni??

Ho trovato in rete queste macro, che uso per calcolarmi al volo i limiti delle variabili su 1 byte (int8_t), 2 byte (int16_t) e 4 byte (int32_t):

Codice:
#define __HALF_MAX_SIGNED(type) ((type)1 << (sizeof(type)*8-2))
#define __MAX_SIGNED(type) (__HALF_MAX_SIGNED(type) - 1 + __HALF_MAX_SIGNED(type))
#define __MIN_SIGNED(type) (-1 - __MAX_SIGNED(type))

#define __MIN(type) ((type)-1 < 1?__MIN_SIGNED(type):(type)0)
#define __MAX(type) ((type)~__MIN(type))
Vorrei utilizzare queste per creare delle funzioni di ricerca overflow del tipo

Codice:
bool isSumOverflow(int32_t a, int32_t b, int8_t bit) {
   if(bit == 1) #CHECK_FOR_OVERFLOW# return 1;
   if(bit == 2) #CHECK_FOR_OVERFLOW# return 1;
   if(bit == 4) #CHECK_FOR_OVERFLOW# return 1;
}

bool isMultOverflow(int32_t a, int32_t b, int8_t bit) {
   if(bit == 1) #CHECK_FOR_MULT_OVERFLOW# return 1;
   if(bit == 2) #CHECK_FOR_MULT_OVERFLOW# return 1;
   if(bit == 4) #CHECK_FOR_MULT_OVERFLOW# return 1;
}
Dove passo su a e b le variabili castate a int32_t per semplicità, e sulla variabile "bit" il numero di bit "veri" delle variabili a e b.

In realtà per la somma già ho una mezza soluzione...

Codice:
int isSumOverflow(int32_t a, int32_t b, int8_t bit) {
    if(a < 0) a = abs(a);
    if(b < 0) b = abs(b);
    if(bit == 1) return a > 0 && b > 0 && b > (__MAX(int8_t) - a);
    if(bit == 2) return a > 0 && b > 0 && b > (__MAX(int16_t) - a);
    if(bit == 4) return a > 0 && b > 0 && b > (__MAX(int32_t) - a);
    else return 0;
}
Poi per la sottrazione ci si riconduce alla somma, e per la divisione può solo verificarsi underflow (banale).

Per la moltiplicazione invece? Avreste idee?
E per quanto riguarda la somma, avete idee migliori della mia?
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat
mfonz85 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2007, 18:19   #2
xorshadow
Member
 
L'Avatar di xorshadow
 
Iscritto dal: Feb 2007
Messaggi: 38
Guarda qui, fa proprio a caso tuo:
http://msdn.microsoft.com/library/de...re01142004.asp
xorshadow è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2007, 18:24   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da mfonz85 Guarda i messaggi
Ora...c'è un metodo veloce, rapido, efficace, di stra-bella programmazione per rilevare overflow in queste operazioni??
In una somma di due valori con segno, si ha overflow quando avviene uno dei seguenti casi:
- Due numeri entrambi positivi sommati danno come risultato un numero negativo
- Due numeri entrambi negativi sommati danno come risultato un numero positivo

Quindi ti basta verificare i segni degli operandi e del risultato.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2007, 18:42   #4
mfonz85
Member
 
L'Avatar di mfonz85
 
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
Quote:
Originariamente inviato da andbin Guarda i messaggi
In una somma di due valori con segno, si ha overflow quando avviene uno dei seguenti casi:
- Due numeri entrambi positivi sommati danno come risultato un numero negativo
- Due numeri entrambi negativi sommati danno come risultato un numero positivo

Quindi ti basta verificare i segni degli operandi e del risultato.
Ok, quindi la mia soluzione è perfetta

Codice:
int isSumOverflow(int32_t a, int32_t b, int8_t bit) {
    if(a < 0) a = abs(a);
    if(b < 0) b = abs(b);
    if(bit == 1) return a > 0 && b > 0 && b > (__MAX(int8_t) - a);
    if(bit == 2) return a > 0 && b > 0 && b > (__MAX(int16_t) - a);
    if(bit == 4) return a > 0 && b > 0 && b > (__MAX(int32_t) - a);
    else return 0;
}
Ma per la moltiplicazione?? Di idee semplici non me ne vengono
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat
mfonz85 è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2007, 19:10   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da mfonz85 Guarda i messaggi
Codice:
int isSumOverflow(int32_t a, int32_t b, int8_t bit) {
    if(a < 0) a = abs(a);
    if(b < 0) b = abs(b);
    if(bit == 1) return a > 0 && b > 0 && b > (__MAX(int8_t) - a);
    if(bit == 2) return a > 0 && b > 0 && b > (__MAX(int16_t) - a);
    if(bit == 4) return a > 0 && b > 0 && b > (__MAX(int32_t) - a);
    else return 0;
}
A dire il vero basta una banale macro:

#define IS_OVERFLOW(a,b,r) ((a) < 0 == (b) < 0 && (b) < 0 != (r) < 0)
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2007, 19:24   #6
mfonz85
Member
 
L'Avatar di mfonz85
 
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
Quote:
Originariamente inviato da andbin Guarda i messaggi
A dire il vero basta una banale macro:

#define IS_OVERFLOW(a,b,r) ((a) < 0 == (b) < 0 && (b) < 0 != (r) < 0)
ehehe, grazie andbin
sono io che non sono capace di fare queste finezze
implemento subito il tuo codice-capolavoro
ma dimmi un pò...per la moltiplicazione??
non c'è nessuna via oltre a quella di mettersi lì e fare moltiplicazioni e somme parziali fino a che non si arriva all'overflow?? (se c'è)
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat
mfonz85 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 12:06   #7
mfonz85
Member
 
L'Avatar di mfonz85
 
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
ok, per la moltiplicazione ho avuto l'idea...mi sembra banale, ma credo funzioni...

Se ho un numero massimo, mettiamo caso 32767 numero signed su 16 bit, e devo vedere se 2 numeri moltiplicati tra loro vanno in overflow: trovo il minimo e il massimo tra i 2 numeri e poi divido il massimo numero rappresentabile su 16 bit signed con il massimo fattore della moltiplicazione: se il risultato di questa operazione è minore del secondo fattore, siamo in overflow...altrimenti no

150*160 = 24000 (ok, minore di 32767)
32767 / 160 = 204
204 > 150 (no overflow, perchè il secondo fattore sta dentro il 204)

150*260 = 39000 (overflow)
32767 / 260 = 126
126 < 150 (overflow, il secondo fattore sta fuori dal 126)

Codice:
#define __HALF_MAX_SIGNED(type) ((type)1 << (sizeof(type)*8-2))
#define __MAX_SIGNED(type) (__HALF_MAX_SIGNED(type) - 1 + __HALF_MAX_SIGNED(type))
#define __MIN_SIGNED(type) (-1 - __MAX_SIGNED(type))

#define __MIN(type) ((type)-1 < 1?__MIN_SIGNED(type):(type)0)
#define __MAX(type) ((type)~__MIN(type))

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a,b) ((a) > (b) ? (a):(b)) 

int isMultOverflow(int32_t a, int32_t b, int8_t bit) {
    int massimo = max(a,b);
    int minimo = min(a,b);
    if( bit == 1 ) return( minimo > (__MAX(int8_t) / massimo) );
    else if( bit == 2 ) return( minimo > (__MAX(int16_t) / massimo) );
    else if( bit == 4 ) return( minimo > (__MAX(int32_t) / massimo) );
    else return 1;
}
Che programmazione burina, mi sento uno "zappatore del C"

L'ho scritta al volo, così al brucio, ora ci faccio un pò di debugging, non si sa mai...
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat
mfonz85 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 12:39   #8
pisto
 
Messaggi: n/a
e tipo fare (l'esempio è in java, è l'unico linguaggio che conosaco per adesso ):
Codice:
boolean overflow(int fattore1, int fattore2, int valore massimo){ //col III parametro intendo il valore massimo che un tipo può tenere, quindi un signed byte-->127, etc...
fattore1=fattore1<0?-fattore1:fattore1; //trovo il valore assoluto
fattore2=fattore2<0?-fattore2:fattore2;
if(fattore2>massimo/fattore1)
    return true; //c'è overflow
else
    return false;
}
in realtà essendo il negativo del basso valore rappresentabile + grande del valore + grande (tipo per un signed byte gli estremi sono -128 e 127, almeno così in java, scusa la mia ignoranza) allora questa soluzione non funziona alla perfeione, ma si potrebbe modificare in modo da mettere un parametro che indica anche il valore + basso, e poi nell'if comparare il positivo solo se lo xor dei segni dei due fattori è false.

P.S.
dico cazzate?

edit: wow mi sono appena accorto che abbiamo postato la stessa soluzione

Ultima modifica di pisto : 18-03-2007 alle 12:49.
  Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 12:59   #9
mfonz85
Member
 
L'Avatar di mfonz85
 
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
Quote:
Originariamente inviato da pisto Guarda i messaggi
e tipo fare (l'esempio è in java, è l'unico linguaggio che conosaco per adesso ):
Codice:
boolean overflow(int fattore1, int fattore2, int valore massimo){ //col III parametro intendo il valore massimo che un tipo può tenere, quindi un signed byte-->127, etc...
fattore1=fattore1<0?-fattore1:fattore1; //trovo il valore assoluto
fattore2=fattore2<0?-fattore2:fattore2;
if(fattore2>massimo/fattore1)
    return true; //c'è overflow
else
    return false;
}
Accidenti, mi hai fatto accorgere di un errore banale nel mio codice...
Comunque, provo subito il tuo codice, lo trasformo in C e ti dico
...
...
testing...
...
...
La tua funzione va che è una freccia
Adesso vado a correggere l'errore che mi hai fatto scovare nella mia...

Quote:
Originariamente inviato da pisto Guarda i messaggi
...ma si potrebbe modificare in modo da mettere un parametro che indica anche il valore + basso, e poi nell'if comparare il positivo solo se lo xor dei segni dei due fattori è false.
Aspetta...non ti seguo...
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat
mfonz85 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 16:53   #10
pisto
 
Messaggi: n/a
dicevo con quel giro di parole strafigo in cui ho tirato in ballo pure lo xor, che se il numero di segni è dispari allora il risultato è negativo (-*+=-, -*-=+)

quindi, riguardo alla moltiplicazione il problema si pone se un fattore è +-1, infatti puoi moltiplicare +1 per (prendo il caso del byte con segno) 127 in positivo, ma 128 in negativo. quindi bisogna (nella moltiplicazione solo nel caso che un fattore sia 1, nella somma/sttrazione anche negli altri) creare un'intervallo in cui l'altro operatore può stare senza dare un overflow. mi sembra che la funzione giusta sia così:

Codice:
boolean overflowMolt(int a, int b, int maxValPositivo, int maxValNeg){
boolean segno=~(a<0^b<0);
a=a<0?-a:a;
b=b<0?-b:b;
return segno?b<=maxValPositivo/a:b<=-(maxValNeg/a);
}
per la somma/sottrazione:
Codice:
boolean overflowSomma(int a, int b, int maxValPositivo, int maxValNeg){
return b>=maxValNeg-a&&b<=maxValPos+a;
}
edit
dimenticavo: se lavori in c, hai la possibilità di fare una funzione direttamente in assembly no? mi pare ci sia un registro (un bit in un registro + ampio) che ti segnala se l'ultima operazione algebrica ha dato un overflow.

Ultima modifica di pisto : 18-03-2007 alle 17:27.
  Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 17:18   #11
mfonz85
Member
 
L'Avatar di mfonz85
 
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
Quote:
Originariamente inviato da pisto Guarda i messaggi
dicevo con quel giro di parole strafigo in cui ho tirato in ballo pure lo xor, che se il numero di segni è dispari allora il risultato è negativo (-*+=-, -*-=+)

quindi, riguardo alla moltiplicazione il problema si pone se un fattore è +-1, infatti puoi moltiplicare +1 per (prendo il caso del byte con segno) 127 in positivo, ma 128 in negativo. quindi bisogna (nella moltiplicazione solo nel caso che un fattore sia 1, nella somma/sttrazione anche negli altri) creare un'intervallo in cui l'altro operatore può stare senza dare un overflow. mi sembra che la funzione giusta sia così:

Codice:
boolean overflowMolt(int a, int b, int maxValPositivo, int maxValNeg){
a=a<0?-a:a;
return b>=maxValNeg/a&&b<=maxValPos/a;
}
per la somma/sottrazione:
Codice:
boolean overflowSomma(int a, int b, int maxValPositivo, int maxValNeg){
a=a<0?-a:a;
return b>=maxValNeg+a&&b<=maxValPos-a;
}
No...non vanno
Ma strano accidenti, non trovo l'errore...

Codice:
int overflowMolt(int32_t a, int32_t b, u_int8_t byte){
    a = a < 0 ? -a : a;
    if (byte == 1) return ( (b >= __MIN(int8_t) / a) && (b <= __MAX(int8_t) / a) );
    if (byte == 2) return ( (b >= __MIN(int16_t) / a) && (b <= __MAX(int16_t) / a) );
    if (byte == 4) return ( (b >= __MIN(int32_t) / a) && (b <= __MAX(int32_t) / a) );
}

int overflowSomma(int32_t a, int32_t b, u_int8_t byte){
    a = a < 0 ? -a : a;
    if(byte == 1) return ( (b >= __MIN(int8_t) + a) && (b <= __MAX(int8_t) - a) );
    if(byte == 2) return ( (b >= __MIN(int16_t) + a) && (b <= __MAX(int16_t) - a) );
    if(byte == 4) return ( (b >= __MIN(int32_t) + a) && (b <= __MAX(int32_t) - a) );
}
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat
mfonz85 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 17:20   #12
pisto
 
Messaggi: n/a
riguarda il mio messaggio, avrò editato una ventina di volte mentre lo leggev
  Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 18:35   #13
mfonz85
Member
 
L'Avatar di mfonz85
 
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
Quote:
Originariamente inviato da pisto Guarda i messaggi
Codice:
boolean overflowMolt(int a, int b, int maxValPositivo, int maxValNeg){
boolean segno=~(a<0^b<0);
a=a<0?-a:a;
b=b<0?-b:b;
return segno?b<=maxValPositivo/a:b<=-(maxValNeg/a);
}
Nada, continua a non andare (e purtroppo non riesco ad aiutarti a trovare l'errore: stra programmazione con ?, :, ~, non la capisco )

Quote:
Originariamente inviato da pisto Guarda i messaggi
dimenticavo: se lavori in c, hai la possibilità di fare una funzione direttamente in assembly no? mi pare ci sia un registro (un bit in un registro + ampio) che ti segnala se l'ultima operazione algebrica ha dato un overflow.
Potrebbero esserci problemi di portabilità in questo caso??
Te lo chiedo perchè il programma che sto facendo deve girare perfettamente su Unix e Solaris...non sarebbe rischioso lavorare direttamente sui registri?
Non saprei proprio da dove partire per l'assembly! Non ho mai provato ad implementarlo in programmi C
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat
mfonz85 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 19:06   #14
pisto
 
Messaggi: n/a
nel mio post precedente ho scritto svariate puttanate, compresi degli errori di sintassi (che vergogna )

ecco le versioni che funzionano (testate)
Codice:
static boolean overflowMolt(int a, int b, int maxValPositivo){
		boolean segno=!(a<0^b<0);
		a=a<0?-a:a;
		b=b<0?-b:b;
		return b>(segno?maxValPositivo:maxValPositivo+1)/a;
	}
	static boolean overflowSomma(int a, int b, int maxValPositivo){
		return b<-a-(maxValPositivo+1)||b>maxValPositivo-a;
	}
in questa versione ho assunto che ilo valore massimo sia minore di uno al valore assoluto del valore minimo (come credo sia praticamente uno standard).

riguardo al segno ^, è XOR, e ! è NOT. riguardo all'assembly invece, l'importante è che il programma giri su un processore compatibile con quello per cui comppili il codice sorgente. quindi è (relativamente, vedi il mac che fino ad un po' di tempo fa girava su un processore diverso) indipendente dal sistema operativo

Ultima modifica di pisto : 18-03-2007 alle 19:56.
  Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 19:56   #15
mfonz85
Member
 
L'Avatar di mfonz85
 
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
Quote:
Originariamente inviato da pisto Guarda i messaggi
nel mio post precedente ho scritto svariate puttanate, compresi degli errori di sintassi (che vergogna )

ecco le versioni che funzionano (testate)
Codice:
static boolean overflowMolt(int a, int b, int maxValPositivo){
		boolean segno=!(a<0^b<0);
		a=a<0?-a:a;
		b=b<0?-b:b;
		return segno?b>maxValPositivo/a:b>(maxValPositivo+1)/a;
	}
	static boolean overflowSomma(int a, int b, int maxValPositivo){
		return b<-a-(maxValPositivo+1)||b>maxValPositivo-a;
	}
in questa versione ho assunto che ilo valore massimo sia minore di uno al valore assoluto del valore minimo (come credo sia praticamente uno standard).

riguardo al segno ^, è XOR, e ! è NOT. riguardo all'assembly invece, l'importante è che il programma giri su un processore compatibile con quello per cui comppili il codice sorgente. quindi è (relativamente, vedi il mac che fino ad un po' di tempo fa girava su un processore diverso) indipendente dal sistema operativo
AVE, o sommo coder
Funziona a meraviglia.
Però adesso l'ho solo provata così...voglio capire come funziona
Grazie
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat
mfonz85 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 20:00   #16
pisto
 
Messaggi: n/a
il concetto è quello che avevi trovato tu, o caro discepolo , solo che il mio fa il test sia per il limite minore che per quello maggiore. prendi il limite, lo dividi per un fattore, controlli che l'altro fattore non superi quel risultato.
  Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto SONY BRAVIA 8 II e BRAVIA Theatre System 6: il c...
Bonus Elettrodomestici 2025, si parte: c...
Jeff Bezos torna al comando, stavolta di...
Anthesi sceglie OVHcloud per digitalizza...
Cube presenta Trike Flatbed Hybrid 750, ...
Call of Duty Black Ops 7 peggio di Infin...
L'Italia è il secondo mercato per...
Wi-Fi superveloce anche in giardino? FRI...
La Ford Focus va ufficialmente in pensio...
Booking.com integra Revolut Pay: nasce i...
DGX Spark a 175 fps con ray tracing su C...
Red Dead Redemption 2 Enhanced è ...
3Dfx Voodoo 2, una GPU nata con la scade...
Apple Watch: la Mela dovrà versar...
TIM e Nokia insieme per potenziare il 5G...
Musk lancia la nuova era dei DM su X con...
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: 21:04.


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