본문 바로가기
C++ 200제/코딩 IT 정보

C++ Signed Integer 자료형 공부, 데이터 타입 범위와 차이점

by vicddory 2018. 10. 11.

C++ Signed Integer 데이터 타입 공부하기 


Signed Integer 자료형

double-word는 2바이트 2개, 또는 16비트 2개의 결합(4바이트, 32비트)을 의미하며 맨 우측 0비트에서 맨 좌측 31 비트까지를 나타냅니다.



C++ INT 16비트c# java 공통 자료형, 데이터 타입 범위와 차이점



  • 우측 0비트 : 최하위 비트, LOBIT로 부름
  • 좌측 31비트 : 최상위 비트, HIBIT라 부름


다른 비트들은 위치값을 사용하여 부릅니다.


  • 첫 번째 8비트(0~7비트) 그룹 : 하위 바이트, LOBYTE라 부fma
  • 마지막 8비트(24~31비트)는 상위 바이트, HIBYTE라 부르며, 다른 바이트들은 위치 값을 사용하여 호출됩니다.
  • 오른쪽 16비트 : 오른쪽 워드, 하위 워드, LOWORD라 부름
  • 좌측 16비트 : 왼쪽 워드, 상위 워드, HIWORD라 부름.



C++ 비트 구조 16bitc# java 공통 자료형, 데이터 타입 범위와 차이점



double-word로 표현할 수 있는 최소 이진수와 십진수는 0입니다.




c++ signed int 정수형 자료c# java 공통 자료형, 데이터 타입 범위와 차이점



각 비트에 1값을 주어 최대 값을 확인해 볼 수도 있습니다.


 2n-1

 230

 229

 228

 227

 226

 225

 224

 etc

 1,073,741,824

 536,870,912

 268,435,456

 134,217,728

 67,108,864

 33,554,432

 16,777,216


 223

 222

 221

 220

 219

 218

 217

 216

 8,388,608

 4,194,304

 2,097,152

 1,048,576

 524,288

 262,144

 131,072

 65,536


 215

 214

 213

 212

 211

 210

 29

 28

 32,768

 16,384

 8,192

 4,096

 2,048

 1,024

 512

 256


27 26 25 24 23 22 21 20

128 64 32 16 8 4 2 1

1*231+1*230+1*229 + 1*228 + 1*227 + 1*226 + 1*225 + 1*224 + 1*223 + 1*222 + 1*221 + 1*220+ 1*219 + 1*218 + 1*217 + 1*216 + 1*215 + 1*214 + 1*213 + 1*212 + 1*211 + 1*210 + 1*29 + 1*28 + 1*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20


= 2,147,483,648 + 1,073,741,824 + 536,870,912 + 268,435,456 + 134,217,728 + 67,108,864 + 33,554,432 + 16,777,216 + 8,388,608 + 4,194,304 + 2,097,152 + 1,048,576 + 524,288 + 262,144 + 131,072 + 65,536 + 32,768 + 16,384 + 8,192 + 4,096 + 2,048 + 1,024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1


= 4,286,578,708


『Word에 저장할 수 있는 16진수 최소 값은 0x0』입니다.



C++ Signed Integer 데이터 타입 공부하기c# java 공통 자료형, 데이터 타입 범위와 차이점


Word로 표현할 수 있는 16진수 최대 값을 확인해 보려면 모든 비트의 값을 f나 F로 변환해야 합니다.


1111 1111 1111 1111 1111 1111 1111 1111

 f f f f f f f f

 = 0xffffffff = 0Xffffffff = 0XFFFFFFFF = 0xFFFFFFFF


double-word는 word 두 개가 표현할 수 있는 데이터의 양을 모두 포함합니다. (32비트, 4바이트, 4,294,967,295)


32비트를 요구하는 숫자를 저장하려면 -2,147,483,648에서 2,147,484,647까지 표현할 수 있는 INT 키워드를 사용할 수 있으며, INT에 signed도 붙일 수 있습니다.


아래는 사용 예입니다.


1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
using namespace std;
 
void main()
{
    int number = 44608;
    signed number = 44608;
 
    cout << number;
    putchar(L'\n');
}
cs


실행 결과는 아래와 같습니다.


44608

Press any key to continue . . .


c++ int 프로그래밍 원리c# java 공통 자료형, 데이터 타입 범위와 차이점


Win32 라이브러리는 INT형 데이터 타입을 제공하는데, 아래처럼 사용하면 『INT32를 사용하는 것』과 같습니다.


1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <Windows.h>
using namespace std;
 
void main()
{
    INT number = 44608;
 
    cout << number;
    putchar(L'\n');
}
cs



C++ Signed Integer 데이터 타입 공부하기c# java 공통 자료형, 데이터 타입 범위와 차이점


Unsigned Integers

이 자료형은 32비트형으로 0에서 2,147,484,647를 나타내며, 아래는 사용 예입니다.


1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
 
void main()
{
    unsigned number;
    unsigned int value;
}
cs


Unsigned Integer를 지원하기 위해 Win32 라이브러리는 UINT와 UINT32란 데이터형을 제공합니다.


c++ int 데이터 타입 이해c# java 공통 자료형, 데이터 타입 범위와 차이점


[C++ Signed Integer 데이터 타입 공부하기]

댓글