Ile to bajtów unsigned long long? Czy to to samo co unsigned long long int?
int32_t, uint64_titp C ++ otrzyma je z nadchodzącym standardem. Są w nagłówku <stdint.h>.
Ile to bajtów unsigned long long? Czy to to samo co unsigned long long int?
int32_t, uint64_titp C ++ otrzyma je z nadchodzącym standardem. Są w nagłówku <stdint.h>.
Odpowiedzi:
Podsumowanie: ma 64 bity lub więcej.
unsigned long longjest taki sam jak unsigned long long int. Jego rozmiar zależy od platformy, ale standard C (ISO C99) gwarantuje, że ma co najmniej 64 bity. W long longC89 nie było , ale najwyraźniej obsługuje go nawet MSVC, więc jest dość przenośny.
W obecnym standardzie C ++ (wydanym w 2003 r.) Nie ma long long, chociaż wiele kompilatorów obsługuje go jako rozszerzenie. Nadchodzący standard C ++ 0x będzie go obsługiwał, a jego rozmiar będzie taki sam jak w C, więc co najmniej 64 bity.
Możesz uzyskać dokładny rozmiar w bajtach (8 bitów na typowych platformach) za pomocą wyrażenia sizeof(unsigned long long). Jeśli chcesz mieć dokładnie 64 bity, użyj uint64_t, które jest zdefiniowane w nagłówku <stdint.h>wraz z kilkoma pokrewnymi typami (dostępne w C99, C ++ 11 i niektórych obecnych kompilatorach C ++).
sizeof(char) gwarantuje, że zwróci dokładnie jeden . Zwraca, jak duży jest operand w liczbie bajtów, a nie w liczbie „jednostek char”. Dlatego nie ma bajtów „na większości platform” to bajty na każdej platformie.
chari bajt, masz rację. Jeśli zrównasz chari oktet , to się zmieni.
sizeof(long long) == 1i byłoby zgodne.
Piękno C ++, podobnie jak C, polega na tym, że rozmiar tych elementów jest określony przez implementację, więc nie ma poprawnej odpowiedzi bez określenia kompilatora, którego używasz. Czy te dwa są takie same? Tak. „long long” jest synonimem „long long int” dla każdego kompilatora, który akceptuje oba.
Musi mieć co najmniej 64 bity. Poza tym jest zdefiniowana implementacja.
Ściśle mówiąc, unsigned long longnie jest standardem w C ++ aż do standardu C ++ 0x. unsigned long longjest „prostym specyfikatorem typu” dla typu unsigned long long int(więc są to synonimy).
long longZestaw typów jest również w C99 i był częstym rozszerzenie kompilatory C ++ nawet zanim zostaną ujednolicone.
Użyj operatora sizeof, poda rozmiar typu wyrażony w bajtach. Jeden bajt to osiem bitów. Zobacz następujący program:
#include <iostream>
int main(int,char**)
{
std::cout << "unsigned long long " << sizeof(unsigned long long) << "\n";
std::cout << "unsigned long long int " << sizeof(unsigned long long int) << "\n";
return 0;
}