Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-07-2007, 19:40   #1
Garet Jax
Senior Member
 
Iscritto dal: Nov 2001
Città: Lainate (MI)
Messaggi: 831
[C] perché questo warning?

Ciao a tutti,


devo scrivere un programma che tratta i singoli bit di un intero.

Giusto per fare una prova ho scritto un programma che dichiara un intero unsigned a cui poi viene assegnato il valore (2^32) - 1 = 4294967295.
Compilando mi viene segnalato il seguente warning:
"warning: this decimal constant is unsigned only in ISO C90"

Non mi crea particolari problemi, ma mi chiedo come mai mi venga segnalato.
Se dichiaro una variabile unsigned, non dovrei avere disponibili i valori da 0 a (2^32) -1?

Jax
__________________
Alea iacta est.
Che io deceda se recedo
Garet Jax è offline   Rispondi citando il messaggio o parte di esso
Old 26-07-2007, 21:55   #2
stdecden
Member
 
L'Avatar di stdecden
 
Iscritto dal: Apr 2007
Messaggi: 263
Non ne sono sicuro, ma potrebbe darsi che, dato che tu usi l'ultimo bit(quello piú sigificativo) in uno standard non ISO C90 viene interpretato come bit che determina se la variabile é positiva o negativa. Questo ti potrebbe dare problemi forse con un altro compilatore! Ripeto peró che é solo un ipotesi.
stdecden è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2007, 13:18   #3
Garet Jax
Senior Member
 
Iscritto dal: Nov 2001
Città: Lainate (MI)
Messaggi: 831
Quote:
Originariamente inviato da stdecden Guarda i messaggi
Non ne sono sicuro, ma potrebbe darsi che, dato che tu usi l'ultimo bit(quello piú sigificativo) in uno standard non ISO C90 viene interpretato come bit che determina se la variabile é positiva o negativa. Questo ti potrebbe dare problemi forse con un altro compilatore! Ripeto peró che é solo un ipotesi.
anch'io la penso così.

Però non capisco a che serve allora dichiarare la variabile unsigned.

__________________
Alea iacta est.
Che io deceda se recedo
Garet Jax è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2007, 13:37   #4
stdecden
Member
 
L'Avatar di stdecden
 
Iscritto dal: Apr 2007
Messaggi: 263
prova a mettere il suffisso UL(unsigned long)
stdecden è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2007, 13:46   #5
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Garet Jax Guarda i messaggi
Ciao a tutti,


devo scrivere un programma che tratta i singoli bit di un intero.

Giusto per fare una prova ho scritto un programma che dichiara un intero unsigned a cui poi viene assegnato il valore (2^32) - 1 = 4294967295.
Compilando mi viene segnalato il seguente warning:
"warning: this decimal constant is unsigned only in ISO C90"

Non mi crea particolari problemi, ma mi chiedo come mai mi venga segnalato.
Se dichiaro una variabile unsigned, non dovrei avere disponibili i valori da 0 a (2^32) -1?

Jax
Veramente 4294967295 e' uguale a 0xFFFFFFFF, che equivale a dire, su un intero a 32 bit, che e' -1.
Per questo motivo ti segnala il warning.

Come hai effettuato l'assegnazione? Se per esempio hai scritto

unsigned int a = 4294967295;
otterrai il warning poiche' la variabile a e' unsigned, ma il numero senza alcuna specifica ulteriore viene considerato con il relativo segno.

Prova a scrivere
unsigned int a = (unsigned int)0xFFFFFFFF;

(uso l'esadecimale perche' mi sembra piu' comprensibile, soprattutto per il fatto che si voglia andare a lavorare sui bit).
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 30-07-2007, 17:45   #6
Garet Jax
Senior Member
 
Iscritto dal: Nov 2001
Città: Lainate (MI)
Messaggi: 831
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Per questo motivo ti segnala il warning.

Come hai effettuato l'assegnazione? Se per esempio hai scritto

unsigned int a = 4294967295;
esatto, proprio così.

Quote:
Originariamente inviato da sottovento Guarda i messaggi

otterrai il warning poiche' la variabile a e' unsigned, ma il numero senza alcuna specifica ulteriore viene considerato con il relativo segno.
Capito.
Ho fatto delle prove ed è salato fuori che non digerisce la forma decimale; infatti anche con unsigned int numero = (unsigned int) 4294967295; salta fuori il warning, mentre co la rappresentazione esdecimale va tutto liscio.

Grazie per la delucidazione.

Jax
__________________
Alea iacta est.
Che io deceda se recedo
Garet Jax è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2007, 17:27   #7
Garet Jax
Senior Member
 
Iscritto dal: Nov 2001
Città: Lainate (MI)
Messaggi: 831
giusto per completare il concetto (magari a qualcuno interessa, se è curioso come me ), ho scoperto che si possono utilizzare anche i decimali per l'assegnamento ad un unsigned int, ma bisogna specificare che è senza segno con la classica specifica di conversione (in questo caso u).
Quindi:

Codice:
unsigned int numero = 4294967295;
diventa

Codice:
unsigned int numero = 4294967295u;
__________________
Alea iacta est.
Che io deceda se recedo
Garet Jax è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
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...
Google apre la strada al file sharing tr...
Black Friday Monitor 2025: OLED, QD-OLED...
Arrivano le nuove specifiche Matter 1.5:...
Microsoft rende open source la trilogia ...
DAZN continua la lotta contro la pirater...
Generativa o predittiva? Il futuro dell’...
BYD va all-in con la Atto 2: batteria pi...
Google modifica la richiesta di consenso...
Black Friday TV: OLED, QLED e Mini-LED a...
007 First Light torna a mostrarsi all'ev...
MOVA Z60 Ultra Roller Complete: il Black...
Clair Obscur: Expedition 33 trionfa ai G...
Son quasi regalate: 135€ per le Squier b...
Windows 11: il copia-incolla via IA funz...
La scopa elettrica Mova K30 Mix crolla a...
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: 11:25.


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