programing

서명되지 않은 길이는 몇 바이트입니까?

nasanasas 2020. 10. 27. 08:18
반응형

서명되지 않은 길이는 몇 바이트입니까?


몇 바이트 unsigned long long입니까? 과 동일 unsigned long long int합니까?


요약 : 64 비트 이상입니다.

unsigned long long와 동일합니다 unsigned long long int. 크기는 플랫폼에 따라 다르지만 C 표준 (ISO C99)에서 최소 64 비트를 보장합니다. 아무 없었다 long longC89에, 그러나 그것은 아주 휴대용 그래서 명백하게도 MSVC는 그것을 지원합니다.

현재 C ++ 표준 (2003 년 발행)에는.이 long long없지만 많은 컴파일러가이를 확장으로 지원합니다. 다가오는 C ++ 0x 표준은이를 지원할 것이며 그 크기는 C에서와 같으므로 적어도 64 비트가 될 것입니다.

표현식을 사용하여 바이트 단위 (일반 플랫폼에서는 8 비트)로 정확한 크기를 얻을 수 있습니다 sizeof(unsigned long long). 정확히 64 비트를 원하는 경우 관련 유형 (C99, C ++ 11 및 일부 현재 C ++ 컴파일러에서 사용 가능)과 함께 uint64_t헤더에 정의 <stdint.h>된를 사용하십시오.


C와 같은 C ++의 장점은 이러한 것의 크기가 구현에 따라 정의되어 있으므로 사용중인 컴파일러를 지정하지 않으면 정답이 없다는 것입니다. 두 사람이 같은가요? 예. "long long"은 "long long int"의 동의어입니다. 두 가지를 모두 허용하는 모든 컴파일러에서 사용됩니다.


64 비트 이상이어야합니다. 그 외에는 구현이 정의되어 있습니다.

엄밀히 말하면 unsigned long longC ++ 0x 표준까지는 C ++의 표준이 아닙니다. unsigned long long유형에 대한 '간단한 유형 지정자' unsigned long long int(동의어)입니다.

long long종류의 세트는 C99에 또한 심지어 표준화되기 전에 C ++ 컴파일러에 대한 공통 확장했다.


연산자를 사용하면 sizeof바이트로 표현 된 유형의 크기를 알 수 있습니다. 1 바이트는 8 비트입니다. 다음 프로그램을 참조하십시오.

#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;
}

참고 URL : https://stackoverflow.com/questions/5836329/how-many-bytes-is-unsigned-long-long

반응형