Trong c + +, cụ thể là tệp tiêu đề cstdint, có các loại cho số nguyên 8 bit, hóa ra là kiểu dữ liệu char với typedef. Bất cứ ai có thể đề xuất một loại số nguyên thực tế 8-bit?Có loại dữ liệu số nguyên thực 8 bit trong C++
Trả lời
Có, bạn đã đúng. int8_t
và uint8_t
là typedef
đến char
trên nền tảng có 1 byte là 8 bit. Trên các nền tảng mà nó không phải là, định nghĩa thích hợp sẽ được đưa ra.
câu trả lời Dưới đây là dựa trên giả định rằng char là 8 bits
char
giữ 1 byte, có thể signed
hoặc unsigned
dựa trên thực hiện.
Vì vậy int8_t
là signed char
và uint8_t
là unsigned char
, nhưng điều này sẽ được an toàn để sử dụng int8_t/uint8_t như số nguyên 8-bit thực tế mà không cần dựa quá nhiều vào việc thực hiện.
Để biết quan điểm của người thực hiện, typedef
ngón tay trong đó char có 8 bit hợp lý.
Đã thấy tất cả điều này, Sử dụng int8_t
hoặc uint8_t
làm số nguyên 8 bit thực sự là an toàn.
Lưu ý rằng 'int8_t' có thể không phải là typedef đối với' char' trên các nền tảng trong đó 'char' nhỏ hơn 8 bit. – vsoftco
Niềm tin của tôi là 'char' là 1 byte. Không phải nó? Có thể tôi cần phải xác nhận lại bản thân mình :) bây giờ – dlmeetei
'char' là 1 byte thực sự, nhưng 1 byte không phải lúc nào cũng là 8 bit, xem ví dụ: [this] (http://stackoverflow.com/questions/2098149/what-platforms-have-something-other-than-8-bit-char). Mặc dù niềm tin của tôi là 'int8_t' không được định nghĩa cho các nền tảng trong đó một byte không phải là 8 bit. – vsoftco
- 1. Loại dữ liệu C nào có thể đại diện cho số nhị phân 40 bit?
- 2. Chuyển đổi số nguyên 64 bit thành 8 số nguyên 1 byte riêng biệt trong python
- 3. Cách nhanh nhất để phân loại dữ liệu số nguyên
- 4. Có thể xác định số lượng chuyển tiếp bitwise trong một số nguyên 8 bit không?
- 5. Chuyển đổi số nguyên 32 bit thành 4 byte dữ liệu trong javascript
- 6. Loại dữ liệu nào là số nguyên trong #define?
- 7. Chỉ định các số nguyên nguyên không dấu 64 bit trên các mô hình dữ liệu 64 bit
- 8. LINQ-to-Entities với dữ liệu ASCII 8 bit
- 9. Loại dữ liệu đại số tương đương trong C
- 10. bit dữ liệu canh Reading
- 11. Loại dữ liệu nhỏ nhất - tôi có thể xác định biến số một bit không?
- 12. C bit đảo ngược trong số nguyên không dấu
- 13. cách xử lý dữ liệu số nguyên lớn hơn 8 byte hoặc hơn 20 chữ số trong C++
- 14. C++: Có an toàn khi so sánh số nguyên 64 bit với số nguyên 32 bit không?
- 15. Số nguyên 64 bit gốc trong Javascript
- 16. Làm cách nào để xác định số nguyên 512 bit trong C++?
- 17. 1 byte dữ liệu kiểu số nguyên
- 18. Loại số nguyên nào để sử dụng cho số nguyên Dữ liệu chính
- 19. Trình bày một số nguyên 64 bit trong GNU/Linux
- 20. Mã hiệu quả: loại dữ liệu ngắn so với số nguyên trong VB.Net
- 21. Loại dữ liệu lớn nhất để lưu trữ (và in) một số nguyên là gì?
- 22. MySQL: Loại dữ liệu nhỏ nhất cho một bit
- 23. Làm thế nào để chuyển đổi số nguyên thành dữ liệu phân loại trong R?
- 24. bit trích xuất trong số nguyên Ruby
- 25. Làm thế nào để xác định số nguyên 64 bit trong c
- 26. Số nguyên 128 bit với c trên cửa sổ?
- 27. Có chức năng htonl "chuẩn" nào cho các số nguyên 64 bit trong C++ không?
- 28. Đúc giữa dữ liệu loại trong C#
- 29. Chuỗi C++: mã hóa UTF-8 hoặc 16 bit?
- 30. Nhận các số nguyên 16 bit trong Python
http://en.cppreference.com/w/cpp/types/integer –
Như tôi đã hiểu, 'int8_t' được đảm bảo là số nguyên 8 bit, nếu nó được xác định. Thực tế là thực hiện của bạn typedef của nó như 'char' (hoặc có thể' ký char') ngụ ý rằng thực hiện của bạn 'char' là trong thực tế 8 bit. Lưu ý rằng 'char' và các họ hàng của nó luôn là các kiểu số nguyên trong C và C++; điều này khác với một số ngôn ngữ khác không xử lý các ký tự như các loại số học. –
Trong các triển khai phổ biến hơn, 'char' là 8 bit. Nếu nó không phải là 8 bit, sẽ không có 'std :: int8_t'. – chris