Qual è la differenza tra unsigned short
e unsigned int
? Ho trovato che unsigned short
è 0-65,535
e unsigned int
è 0-65,535
o 0-4,294,967,295
. Non capisco molto bene la differenza. Come posso conoscere la dimensione del tipo di dati nella mia architettura? E se ad esempio c = (unsigned short) d;
quando c
è un unsigned short
ed è un unsigned int
; che significa? i primi 16 bit da d
vengono assegnati a c
?unsigned short vs unsigned int - a volte sono la stessa gamma?
risposta
Stai davvero chiedendo quale sia la differenza tra short
e int
. La risposta è che short
potrebbe essere più stretto, ma potrebbe anche avere la stessa larghezza di, int
. Questo è praticamente tutto ciò che sappiamo, indipendentemente dalla piattaforma. Molte piattaforme hanno lo int
a 32 bit e lo short
a 16 bit, ma non tutte.
Grazie. Puoi controllare la mia seconda parte? :) – mpluse
No, non lo farò, per favore basta fare un'altra domanda invece di aggiungere più bit a uno che ha già risposto. Se cerchi le tue nuove richieste, probabilmente troverai già domande con le risposte qui. –
Ok. Grazie lo stesso. – mpluse
Questo è un link utile per spiegare la storia dei tipi di dati C:
http://en.wikipedia.org/wiki/C_data_types
Quindi la dimensione del vostro tipo di dati dipende dalla piattaforma, ma se l'int è 32 bit di lunghezza allora sarà in grado di rappresentare uno dei 2^32 numeri diversi (0 - 4.294.967.295 se non firmato). Allo stesso modo se il tuo corto ha una lunghezza di 16 bit allora può rappresentare uno dei 2^16 numeri diversi (0 - 65.535 se non firmato).
Questo link vi dà i dettagli di implementazione per Visual Studio 2005, dove interi sono 32-bit nel formato (4 byte) e pantaloncini sono 16-bit (2 byte):
http://msdn.microsoft.com/en-us/library/s3f49ktz(v=vs.80).aspx
tuo esatto l'implementazione dipenderà dal tuo compilatore.
Come per l'ultima parte della tua domanda, sì, se provi a lanciare un int maggiore del valore massimo del corto a un corto, ti ritroverai con un valore diverso (probabilmente i primi 16 bit ma dovresti provare per essere sicuro).
Prima di tutto, è necessario capire cosa è un int unsigned e short.
Tutto è suddiviso in bit.
Breve è 16 bit, ciascun bit è un 1 o uno 0. Per semplicità dimostrerò con 4 bit
1000 - Unsigned = 8
1000 - Signed = -8
1111 - Unsigned = 15 which is equal to 2^(# of bits) -1
1111 - Signed = -1
notare che con un numero senza segno, l'intervallo di numeri è maggiore, possiamo rendere 1111 = 15.
Ma con un numero con segno, la massima possibilità è 0111 = 7.
Ora un breve ha 16 bit, dandogli
signed range of −32,768 to 32,767 [−(2^15) to 2^15 − 1]
Unsigned range: 0 to 65,53 = 2^16 -1
Un Int ha 32 bit, per fornire un campo di
Signed:−2,147,483,648 to 2,147,483,647 = −(2^31) to 2^31 − 1
Unsigned: 0 to 4,294,967,295 = 2^16 -1
Grazie. Lo so, solo un'ambiguità perché hanno lo stesso intervallo di valori. – mpluse
@Prima di Ah. Quando si fa un corto, non garantisce 16 bit, mentre un Int 16 bit lo fa. Quindi è per quei casi in cui hai assolutamente bisogno di un intero a 16 bit. Un po 'strano – BrettD
Estremamente sbagliato ... un 'char' è almeno di 8 bit, un' short' o un 'int' 16, un' lungo' di 32 bit. E sul CRAY sono tutti 32 bit. – vonbrand
Non possiamo dire un nome di tipo variabile (short, int, long, double etc.) deve puntare specifica lunghezza in bit in tutti architetture a microprocessore o linguaggi di programmazione.Dipende principalmente dall'architettura dei microprocessori e naturalmente dalle definizioni dei linguaggi di programmazione. Generalmente, il corto firmato/non firmato dovrebbe avere (mi aspetto) un mezzo bit di int firmato/non firmato.
- 1. differenza tra unsigned short int e unsigned short
- 2. Conversione di char unsigned in int e short
- 3. Qual è l'identificatore di formato per unsigned short int?
- 4. Trabocco di Unsigned Int
- 5. C++ uint, unsigned int, int
- 6. volatile unsigned int * const
- 7. Leggi byte [] come unsigned short Java
- 8. Differenza tra int unsigned e unsigned in C++
- 9. uint8_t vs char unsigned
- 10. unsigned long long int pow
- 11. C# unsigned int valore predefinito
- 12. C++ firmato e unsigned int vs lunga velocità lungo
- 13. La vera differenza tra "int" e "unsigned int"
- 14. QSpinBox con unsigned int per ingresso esadecimale
- 15. Come leggere unsigned int in Javascript?
- 16. come convertire ascii in unsigned int
- 17. sprintf e unsigned int array in C
- 18. MSVC++: stranezza con unsigned int e troppopieno
- 19. Python/Numpy: Convertire elenco di Caccio a unsigned int
- 20. comportamento gcc strano con unsigned int
- 21. JNI: conversione di unsigned int in jint
- 22. undefined reference to `icu_56 :: :: UnicodeString UnicodeString (char firmato, unsigned short const *, int)'
- 23. array di byte a unsigned int in Java
- 24. Indicatore 'unsigned` overloader per classi
- 25. Riferimento non definito a CryptoPP :: AlignedAllocate (unsigned int)
- 26. di formato per unsigned char
- 27. Aggiunta int a short
- 28. C qual è la forma breve per lungo unsigned int
- 29. Come posso scrivere il vettore <unsigned char> nel file, seguito da un unsigned int
- 30. Compila NSLog con unsigned int e unsigned long su iOS e OSX senza avviso
Perché sono menzionate tre lingue? – Lion
Suona come C, rimuovendo tag di lingua estranei. – djechlin
Non è generale per 3 lingue? – mpluse