C++에서는 int가 4바이트, 32비트를 차지하고 데이터 범위는 -2147483648~2147483647[-2^31~2^31-1]입니다. int형 데이터는 부호 있는 정수 데이터이고, 가장 높은 비트는 부호 비트(0은 양수, 1은 음수)이다.
C++에서는 int가 4바이트, 32비트를 차지하고 데이터 범위는 -2147483648~2147483647[-2^31~2^31-1]입니다.
2바이트를 예로 들어 설명하는 자세한 답변 프로세스:
C에서 int 유형 데이터는 부호 있는 정수 데이터이고 가장 높은 비트는 부호 비트입니다(0은 양수, 1은 음수를 의미).
1바이트는 8개의 이진수 비트와 같습니다. 많은 컴퓨터 시스템에서 2의 보수는 일반적으로 부호 있는 숫자를 나타내는 데 사용됩니다(상보 시스템).
원래 코드: 가장 높은 비트는 부호 비트(0은 양수, 1은 음수)이고, 다른 비트는 일반적인 방식으로 숫자의 절대값을 나타냅니다.
역코드: 서명된 책의 경우 양수의 역코드는 원본 코드와 동일하며 음수의 역코드는 부호 비트를 제외한 원본 코드의 모든 비트를 비트 단위로 반전한 것입니다.
보완 코드: 양수의 보수 코드는 원래 코드와 동일하며, 음수의 보수 코드는 최하위 비트에 1이 추가된 역코드입니다.
2바이트이므로 최대 바이너리 원본 코드는 0111 1111 1111 1111 = 2^15 - 1 = 32767입니다.
최소값은 1111 1111 1111 1111 = - (2^15 - 1) = -32767입니다.
원본 코드에서 0의 표현은 양수와 음수로 구분됩니다. [+0] 원본 = 0000 0000 0000 0000 [-0] 원본 =1000 0000 0000 0000.
그래서 바이너리 원본 코드로 표현하면 범위는 -32767~-0, 0~32767이 됩니다. 0이 2개 있으므로 서로 다른 값의 개수는 2^16-1이 됩니다.
컴퓨터가 보수 코드를 사용하여 데이터를 저장할 때 0의 표현은 고유합니다: [+0] 보수 = [-0] 보수 = 0000 0000 0000 0000
이때 양수 인코딩은 0000 0000부터 변경되지 않습니다. 0000 0000 ~ 0111 1111 1111 1111은 여전히 0 ~ 32767을 나타냅니다.
음수는 보수 규칙을 따라야 합니다. 즉, -32767의 보수는 1000 0000 0000 0001입니다.
그래서 보완코드에는 원래 코드보다 코드가 하나 더 많아지게 됩니다. 이 코드는 1000 0000 0000 0000입니다. 어떤 원본 코드도 보완코드로 변환하면 1000 0000 0000 0000이 되는 것은 불가능하기 때문에 사람들이 규정하는 것입니다. 1000 0000 0000 0000의 2의 보수 인코딩은 -32768입니다.
결론: int형 데이터가 2바이트를 차지하면 2^16개의 변화를 나타낼 수 있습니다. 가장 높은 비트가 부호 비트이므로 0도 한 유형을 차지하므로 양수와 음수에서 2^15개의 변화가 있으므로 양수와 음수 최대값은 대칭이 아니다. 즉, int형 데이터의 값 범위는 -32768 ~ 32767이다.
확장 정보:
int 사용 방법:
정의 방법:
int i;//정수 변수 i 정의
int i=1;//정수 변수 i를 정의하고 다음으로 초기화합니다. 1
상수 정의:
const int i;//상수에 초기 값을 지정해야 하기 때문에 컴파일 오류가 발생했습니다.
const int i=1;//값이 1인 상수 i를 정의합니다.
Java에서 상수를 정의합니다.
final int i=1;//상수 i 정의, 값은 1
권장 튜토리얼: "C Language"
위 내용은 C 언어에서 데이터 int의 값 범위는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!