정수형

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

정수형(正數形)은 컴퓨터 과학에서 수학의 정수의 일부 유한집합을 대표하는 자료형이다.

일반적인 필수 자료형[편집]

비트 이름 범위 십진법 (대략값) 이용 기능
C/C++ C# 델파이 자바 SQL
4 nibble, semioctet Signed: -8 ~ 7, -(2^3) ~ 2^3-1 1 binary-coded decimal, single decimal로 표현.
Unsigned: 0 ~ 15 → 같은 값: ~ 2^4 -1 2
8 byte, octet Signed: -128 ~ 127, -(2^7) ~ 2^7-1 3 아스키 문자 int8_t, char sbyte Shortint byte tinyint
Unsigned: 0 ~ 255 → 같은 값: ~ 2^8 -1 3 uint8_t, char byte Byte n/a unsigned tinyint
16 halfword, word, short Signed: -32,768 ~ 32,767, -(2^{15}) ~ 2^{15}-1 5 UCS-2 문자 int16_t, short short Smallint short smallint
Unsigned: 0 ~ 65,535 → 같은 값: ~ 2^{16} -1 5 uint16_t ushort Word char unsigned smallint
32 word, long, doubleword, longword, int Signed: -2,147,483,648 ~ 2,147,483,647, -(2^{31}) ~ 2^{31}-1 10 UCS-4 문자, 트루컬러 + 알파, FourCC, 액션스크립트 int int32_t, int, long int LongInt; Integer int int
Unsigned: 0 ~ 4,294,967,295 → 같은 값: ~ 2^{32} -1 10 uint32_t uint LongWord; Cardinal n/a unsigned int
64 word, doubleword, longword, long long, quad, quadword, int64 Signed: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807, -(2^{63}) ~ 2^{63}-1 19 매우 큰 수 int64_t, long, long long long Int64 long bigint
Unsigned: 0 ~ 18,446,744,073,709,551,615 → 같은 값: ~ 2^{64} -1 20 uint64_t ulong n/a n/a unsigned bigint
128 octaword, double quadword Signed: -170,141,183,460,469,231,731,687,303,715,884,105,728 ~ 170,141,183,460,469,231,731,687,303,715,884,105,727, -(2^{127}) ~ 2^{127}-1 39 C: 비표준 컴파일러 확장으로만 사용 가능
Unsigned: 0 ~ 340,282,366,920,938,463,463,374,607,431,768,211,455 → 같은 값: ~ 2^{128} -1 39
n n-bit integer
(일반적인 경우)
Signed: (-2^{n-1}) ~ (2^{n-1} -1) \lceil (n-1) \log_{10}{2} \rceil 에이다 범위 -2**(n-1)..2**(n-1)-1
Unsigned: 0 ~ (2^{n}-1) \lceil n \log_{10}{2} \rceil 에이다 범위 0..2**n-1, 에이다 mod 2**n

바이트와 옥텟[편집]

워드[편집]

C/C++[편집]

C 언어 자료형
부호지정
정수형
실수형
문자형
기타
C 프로그래밍 언어
보기  토론  편집  역사

C/C++ 언어에서는 char, int, long, signed, unsigned 등의 키워드에 의해 구현된다. 다른 언어에 비해 C언어는 CPU의 장점을 살려 기계어로 컴파일 되기 때문에 CPU의 데이터 처리 비트와 부호를 다양하게 반영 한다. 이를 위해 키워드를 다양하게 두고 있다. char을 사용한 정수형은 1바이트로 고정되지만 int는 CPU마다 다른 비트 수를 갖는다. 따라서 개발자는 사용하는 CPU와 컴파일러의 사양을 확인해서 얼마의 비트수로 처리되는가를 인식해야 한다.

8비트 CPU의 일반적인 처리 비트수
  • char : 8비트 정수형
  • int : 16비트 정수형
  • long int : 32비트 정수형
32비트 CPU의 일반적인 처리 비트수
  • char : 8비트 정수형
  • short : 16비트 정수형
  • int : 32비트 정수형
  • long long : 64비트 정수형
정수형 부호지정
  • signed char|int : 부호를 갖는 정수형으로 2의 보수체계를 사용한다.
  • unsigned char|int : 부호가 없는 정수형으로 이진법과 같은 수의 배치를 갖는다.

Java[편집]

자바소스코드는 컴파일러에 의해 바이트코드로 생성되고, JVM에 의해 해석되고 수행된다.

자바는 C언어 처럼 특정 CPU에 맞추어 컴파일 되는 것이 아니고, 어느 CPU나 실행될 수 있는 BYTE 코드의 중간 형태의 실행 파일을 만든다. 따라서 C언어가 CPU의 상황에 맞추어 정수형 비트 수를 다르게 사용하는 것에 비해, 자바는 가상 머신(VM)에 의해 해석되고 실행 된다. 일종의 에뮬레이션 된다는 느낌의 실행 방식이다. 이렇게 되면 해석(Interpreter에 의해 번역)되어 실행 되므로 정수형 비트수를 다르게 할 필요가 없다. C/C++는 정수 실행이 기계어에 의해 ALU과 연관되어 실행되는 것과 대조적이다.

자바 고유의 정수 비트 수
  • byte : 8비트 정수형
  • short : 16비트 정수형
  • int : 32비트 정수형
  • long : 64비트 정수형

C언어가 int을 CPU에 따라 16비트 또는 32비트를 사용하는 반면 자바는 32비트를 사용한다. 일종의 통일성을 유지하므로 C언어 보다 편리하다. 정수 부호의 처리는 2의 보수로 C언어와 동일 하다.

자바에서 char 변수는 16비트의 유니코드(UNICODE)를 처리하므로 C/C++의 char와 혼돈하면 안 된다.

같이 보기[편집]