In C++, in particolare il file di intestazione cstdint, ci sono tipi per interi a 8 bit che risultano essere del tipo di dati char con typedef. Qualcuno potrebbe suggerire un vero tipo intero a 8 bit?C'è un vero tipo di dati intero a 8 bit in C++
risposta
Sì, hai ragione. int8_t
e uint8_t
sono typedef
a char
su piattaforme in cui 1 byte è 8 bit. Su piattaforme in cui non lo è, verrà data una definizione appropriata.
risposta seguito si riferiscono al presupposto che char è 8 bits
char
vale 1 byte, che può essere o signed
unsigned
base di attuazione.
Così int8_t
è signed char
e uint8_t
è unsigned char
, ma questo sarà sicuro da usare int8_t/uint8_t come attuale 8-bit integer, senza fare troppo affidamento sulla realizzazione.
Per il punto di vista di un attuatore, typedef
fing dove char è 8 bit ha senso.
Visto tutto questo, È sicuro usare int8_t
o uint8_t
come numero intero intero a 8 bit.
Si noti che 'int8_t' potrebbe non essere un typedef di' char' su piattaforme in cui 'char' è inferiore a 8 bit. – vsoftco
Credo che 'char' sia 1 byte. Non è? Potrebbe essere necessario riconfermarmi :) ora – dlmeetei
'char' è effettivamente 1 byte, ma 1 byte non è sempre 8 bit, si veda ad es. [Questo] (http://stackoverflow.com/questions/2098149/what-platforms-have-something-other-than-8-bit-char). Anche se la mia convinzione è che 'int8_t' non è definito per piattaforme in cui un byte non è 8 bit. – vsoftco
- 1. 8 bit enum, in C
- 2. C++: è sicuro confrontare un intero a 64 bit con un intero a 32 bit?
- 3. Tipo di ritorno di operatori bit a bit in C++
- 4. È possibile determinare il numero di transizioni bit a bit in un numero intero a 8 bit?
- 5. C/C++ Convertire un intero a 64 bit char matrice
- 6. SQL - Tipo intero - Rileva bit
- 7. Come ottengo i dati bit per bit da un valore intero in C?
- 8. Convertire un numero intero a 32 bit in 4 byte di dati in javascript
- 9. Rappresenta un numero intero a 64 bit in GNU/Linux
- 10. ritorno di operazione bit a bit in C
- 11. C - Come verificare se 8 bit sono a 32 bit?
- 12. 'confronto è sempre vero a causa di un intervallo limitato di tipo di dati' avviso in C?
- 13. Converti byte Python in "intero intero a 8 bit senza segno"
- 14. Convertire un numero intero a 64 bit in 8 interi interi da 1 byte in python
- 15. Come convertire un intero a 128 bit in una stringa ascii decimale in C?
- 16. LINQ-to-Entities con dati ASCII a 8 bit
- 17. Quale tipo di dati è un numero intero in #define?
- 18. typecasting implicito in C (conversione a 32 bit senza segno a 8 bit u INT)
- 19. Esecuzione di spostamenti a sinistra bit a bit sui dati "firmati" in Java: meglio passare a JNI?
- 20. più grande tipo di dati in C++?
- 21. C# Operazioni bit a bit su cortocircuiti - Perché trasmettere a un int?
- 22. Come memorizzare un riferimento a un numero intero in C#?
- 23. Ricerca di N bit contigui in un numero intero a sinistra della posizione MSB di un altro intero
- 24. Prestazioni di operazioni a numero intero e bit a bit su GPU
- 25. Come stampare un numero intero a 64 bit come esadecimale?
- 26. Esiste un numero intero a 128 bit in gcc?
- 27. Perché la dimensione di un tipo di dati bool non è di solo 1 bit in C#?
- 28. Converti immagini Bayer a 12 bit in RGB a 8 bit utilizzando OpenCV
- 29. Come verificare se un enum bit a bit contiene valori da un altro enum bit a bit in C#?
- 30. genera un numero intero casuale a 64 bit
http://en.cppreference.com/w/cpp/types/integer –
Come ho capito, 'int8_t' è garantito per essere un numero intero a 8 bit, se è definito del tutto. Il fatto che la tua implementazione sia typedef come 'char' (o forse' signed char') implica che il 'char' dell'implementazione è in realtà 8 bit. Nota che 'char' e i suoi parenti sono sempre tipi interi in C e C++; questo differisce da alcuni altri linguaggi che non considerano i caratteri come tipi aritmetici. –
Nelle implementazioni più comuni, 'char' è 8 bit. Se non è 8 bit, non ci sarà un 'std :: int8_t'. – chris