W języku C++, konkretnie plik nagłówkowy cstdint, istnieją typy dla 8-bitowych liczb całkowitych, które okazują się być typu danych char z typem. Czy ktokolwiek mógłby zaproponować rzeczywisty 8-bitowy typ liczbowy?Czy istnieje rzeczywisty 8-bitowy typ danych liczbowych w C++
Odpowiedz
Tak, masz rację. int8_t
i uint8_t
są typedef
na char
na platformach, gdzie 1 bajt składa się z 8 bitów. Na platformach, na których nie jest, podana zostanie właściwa definicja.
następującą odpowiedź opiera się na założeniu, że char jest 8 bits
char
posiada 1 bajt, który może być signed
lub unsigned
na podstawie realizacji.
Więc int8_t
jest signed char
i uint8_t
jest unsigned char
, ale to będzie bezpieczne w użyciu int8_t/uint8_t jako rzeczywistą 8-bitową liczbę całkowitą bez powołując się zbytnio na realizację.
Dla punktu widzenia osoby realizującej, typedef
fing, w którym char ma 8 bitów, ma sens.
Po zobaczeniu tego wszystkiego, Można bezpiecznie używać int8_t
lub uint8_t
jako rzeczywistej 8-bitowej liczby całkowitej.
Zauważ, że 'int8_t' nie może być typemef do' char' na platformach, w których 'char' ma mniej niż 8 bitów. – vsoftco
Moim zdaniem jest to, że 'char' ma 1 bajt. Czy nie jest? Może być muszę ponownie potwierdzić :) teraz – dlmeetei
'char' jest rzeczywiście 1 bajt, ale 1 bajt nie zawsze jest 8 bitów, patrz np. [to] (http://stackoverflow.com/questions/2098149/what-platforms-have-something-other-than-8-bit-char). Chociaż uważam, że 'int8_t' nie jest zdefiniowany dla platform, w których bajt nie ma 8 bitów. – vsoftco
- 1. Jaki jest domyślny typ danych liczbowych w C?
- 2. Czy istnieje typ danych "dziesiętny" w R?
- 3. Jak określić rzeczywisty typ obiektu w środowisku wykonawczym w C++;
- 4. Czy istnieje sposób na uzyskanie danych wyjściowych jQuery * rzeczywisty znacznik *?
- 5. Czy możliwa jest internalizacja danych liczbowych AngularJS?
- 6. Dziedziczenie w Javie, pozorny typ kontra rzeczywisty typ
- 7. Czysty sposób rzutowania na rzeczywisty typ obiektu
- 8. typ danych promocja w C
- 9. Uzyskaj rzeczywisty typ ogólnego parametru obiektu
- 10. Który typ danych serwera sql najlepiej reprezentuje podwójne w C#?
- 11. Czy istnieje typ bool o stałej szerokości w standardowym C++?
- 12. C struktura jako typ danych
- 13. Jaki jest przyrostek (typ znaku) stałych liczbowych "Byte" w VB.NET?
- 14. Czy istnieje typ "Any" w haskell?
- 15. Czy istnieje taki "uniwersalny" typ Haskella?
- 16. Jaki jest "krótki" typ danych w C?
- 17. Czy istnieje leniwy wskaźnik C++?
- 18. Czy NULL ma typ danych?
- 19. Czy istnieje parser wieloczęściowy/formularz danych w C# - (NO ASP)
- 20. Działka z danych liczbowych na non-oś X
- 21. Czy istnieje odpowiednik statycznego C w C#?
- 22. Typ danych użytkownika Query Lua z C
- 23. C# Custom CheckBox + niestandardowy typ danych wiązania
- 24. Błąd przepełnienia arytmetycznego konwertujący varchar na typ danych liczbowych. '10' <= 9.00
- 25. Czy istnieje dekompilator C++?
- 26. Czy istnieje domyślny typ polimorficzny jednostki haskell
- 27. Czy możemy zdefiniować nowy typ danych w sesji GDB?
- 28. Sprawdź, czy wartość istnieje w jednej ramce danych, czy nie.
- 29. Typ wersji w języku C#
- 30. C#/IronPython Interop i typ danych "float"
http://pl.cppreference.com/w/cpp/types/integer –
Jak rozumiem, 'int8_t' ma 8-bitową liczbę całkowitą, jeśli w ogóle jest zdefiniowane. Fakt, że twoja implementacja jest typem 'char' (lub może' signed char'), oznacza, że 'char' implementacji jest w rzeczywistości 8 bitami. Zauważ, że 'char' i jego krewni zawsze są typami całkowitymi w C i C++; różni się od niektórych innych języków, które nie traktują znaków jako typów arytmetycznych. –
W bardziej powszechnych implementacjach "char" ma 8 bitów. Jeśli nie ma 8 bitów, nie będzie "std :: int8_t". – chris