정수의 최대값
C의 정수(32비트머신의 경우)는 32비트이며 범위는 -32,768 ~+32,767입니다Java 에서는 정수(long)도 32비트이지만 -2,147,483,648 ~+2,147,483,647 의 범위입니다.
자바에서는 비트수는 같은데 범위가 어떻게 다른지 모르겠어요.누가 설명 좀 해줄래?
C에서는 언어 자체가 특정 데이터 유형의 표현을 결정하지 않습니다.임베디드 시스템에서는 머신마다 다를 수 있습니다.int는 16비트의 폭을 가질 수 있지만 보통 32비트입니다.
유일한 요구는 이다.short int<=>int<=>long int크기별로또한 프로세서의 기본 용량을 나타내는 권장 사항이 있습니다.
모든 유형이 서명되어 있습니다.그unsignedmodifier를 사용하면 값의 일부로 최상위 비트를 사용할 수 있습니다(부호 비트용으로 예약되어 있음).
다음은 사용 가능한 데이터 유형의 가능한 값에 대한 간단한 표입니다.
width minimum maximum
signed 8 bit -128 +127
signed 16 bit -32 768 +32 767
signed 32 bit -2 147 483 648 +2 147 483 647
signed 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
unsigned 8 bit 0 +255
unsigned 16 bit 0 +65 535
unsigned 32 bit 0 +4 294 967 295
unsigned 64 bit 0 +18 446 744 073 709 551 615
Java에서는 Java Language Specification에 따라 데이터 유형의 표현이 결정됩니다.
순서는 다음과 같습니다.byte8비트,short16비트,int32비트,long64비트이러한 유형은 모두 서명되어 있으며 서명되지 않은 버전은 없습니다.단, 비트 조작에서는 번호가 부호 없이 처리됩니다(즉, 모든 비트가 올바르게 처리됩니다).
문자 데이터 유형char는 16비트의 너비로 부호 없이 UTF-16 인코딩을 사용하여 문자를 유지합니다(단,char무효 문자 코드 포인트를 나타내는 부호 없는 임의의 16비트 정수)
width minimum maximum
SIGNED
byte: 8 bit -128 +127
short: 16 bit -32 768 +32 767
int: 32 bit -2 147 483 648 +2 147 483 647
long: 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
UNSIGNED
char 16 bit 0 +65 535
C의 정수(32비트 머신의 경우)는 32비트이며 범위는 -32768 ~+32767입니다
틀렸습니다. 2의 보완 표현에서 32비트 부호 정수의 범위는 -231 ~ 2-1로31 -2,147,483,648 ~2,147,483,647과 같습니다.
32비트 정수의 범위는 -2,147,483,648 ~2,147,483,647입니다하지만 32비트 머신에 있다고 해서C컴파일러는 32비트 정수를 사용합니다.
C 언어 정의는 다양한 데이터 유형의 최소 범위를 지정합니다.위해서int이 최소 범위는 -32767 ~32767입니다즉,int의 너비는 16비트 이상이어야 합니다.구현은 자유롭게 더 넓은 범위를 넓힐 수 있습니다.int더 넓은 범위로 타이핑합니다.예를 들어 작업하고 있다SLES 10 개발 서버에서는 -2147483647 ~2137483647 의 범위가 됩니다.
아직 16비트를 사용하는 시스템이 있습니다.int유형(전 세계가 A가 아님)
VAX
x86) 단, 32비트를 사용하는 것은 많이 있습니다.int64비트를 사용하는 타입도 있습니다.
C 언어는 다른 아키텍처에서 실행되도록 설계되었습니다.Java는 이러한 아키텍처의 차이를 숨기는 가상 머신에서 실행되도록 설계되었습니다.
자바와 완전히 동등한 것int이long int주식회사.
편집: Ifint32_t정의하면 정밀도 면에서 동등합니다. long int자바 정밀도를 보증하다int32비트 이상의 사이즈가 보증되기 때문입니다.
포스터에는 자바 타입이 혼재되어 있습니다.Java에서는 C in은 짧은 (16비트)= -32768 ~32767 int (32비트)= -2,196 ~483,648 ~2,194,483,647 입니다.
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
32비트 머신의 C - 정수에서는 32비트가 저장에 사용되는 것이 아니라 16비트가 될 수도 있기 때문입니다.기계에 따라 다릅니다(실장에 따라 다름).
실제로, 사이즈는 비트의 단위입니다.int,short,long컴파일러의 실장에 의존합니다.
예를 들어 Ubuntu 64비트에서는short에32비트, 다른 32비트 Ubuntu 버전일 경우16조금.
실제로 이해하기 쉽고 구글 계산기로 계산할 수도 있습니다. int는 32비트이고 컴퓨터는 2진수이므로 비트당 2개의 값을 가질 수 있습니다(스팟).2^32를 계산하면 4,294,967,296을 얻을 수 있습니다.따라서 이 수를 2로 나누면(반쪽은 음의 정수이고 나머지 절반은 양이기 때문에), 2,194,483,648이 됩니다.이 숫자는 32비트로 나타낼 수 있는 가장 큰 int입니다만, 주의를 기울이면 2,194,483,148보다 큽니다.7,483,647 x 1, 이것은 숫자 중 하나가0을 나타내며, 불행히도 2^32는 홀수가 아니기 때문에 중간에 1개의 숫자만 가지고 있지 않기 때문에 가능한 정수는 하나 적은 암호를 가지며, 음수는 완전한 반수인 2,183,648을 얻습니다.
그리고 그게 다야.그것은 언어가 아니라 기계에 달려 있다.
__int32의 C 범위는 –2147483648 ~2147483647입니다전체 범위는 여기를 참조하십시오.
unsigned short 0 to 65535
signed short –32768 to 32767
unsigned long 0 to 4294967295
signed long –2147483648 to 2147483647
'int'가 32비트라는 보장은 없습니다. 특정 크기의 변수를 사용하려면, 특히 비트 조작을 수반하는 코드를 작성할 때 '표준 정수 유형'을 사용해야 합니다.
자바어
int 데이터 유형은 32비트 부호 2의 보완 정수입니다.최소값은 -2,147,483,648이고 최대값은 2,147,483,647입니다(포함).
표준 C에서는 INT_MAX를 최대 'int' 값으로 사용할 수 있습니다.이 상수는 "limits"로 정의해야 합니다.h". 유사한 상수는 다른 유형에 대해 정의됩니다(http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.5.html),. 이 상수는 구현에 의존하지만 표준에 명시된 각 유형의 최소 비트에 따른 최소값을 가집니다.
언급URL : https://stackoverflow.com/questions/15004944/max-value-of-integer
'source' 카테고리의 다른 글
| Vuejs의 window.scrollY 변경 내용을 확인합니다. (0) | 2022.08.10 |
|---|---|
| JDBC에서 postgres에 접속할 때 스키마를 지정할 수 있습니까? (0) | 2022.08.10 |
| vue js의 로그인 구성 요소에서 사용자 상태를 업데이트하는 방법 (0) | 2022.08.10 |
| C 입사 면접 - 캐스팅 및 비교 (0) | 2022.08.10 |
| Vuejs - v-for를 사용하여 어레이의 모든 고유 값을 가져오는 방법(중복 제거) (0) | 2022.08.08 |