C++ 프로젝트를 하면서 DWORD 에 대해 알아보고 나면 까먹어서 정리해둔다.
(요약은 맨 아래에)
< 추가 >
- WORD, DWORD, QWORD 란?
데이터를 저장하는 데 사용되는 '부호 없는 정수형 자료형'이다.
// 16비트 WORD 선언
WORD word_ = 10;
unsigned short word__ = 10;
// 32비트 DWORD 선언
DWORD dword_ = 1000000000;
unsigned long dword__ = 1000000000;
// 64비트 QWORD 선언
QWORD qword_= 1000000000000000000;
unsigned long long qword__ = 1000000000000000000;
typedef unsigned short WORD;
- WORD의 탄생 일화
데이터 처리 과정에서 unsigned short 와 같이 선언이 매우 귀찮다.
해당 타입을 재정의 하자.
CPU의 기본 처리 단위인 16bit(unsigned short)를 WORD라는 타입으로 재정의(typedef) 했다.
(Visual Studio 등 IDE 에서 WORD를 선언하고 F12로 확인이 가능하다)
typedef unsigned long DWORD;
- DWORD의 탄생 일화
Intel 사의 16비트 프로세서에서는 기본 처리 단위를 WORD로 재정의 했었다..
다만 프로세서의 단위의 발전으로 8bit, 16bit, 32bit, 64bit 등 으로 발전했다.
(128bit 단위도 있다고 함)
따라서 기존의 16bit를 기반으로 한 기본 처리 단위, 즉 WORD가 변경이 되어야 했다.
다만 WORD 자체를 변경하면 기존의 개발내용의 수정이 불가피 하므로 새로운 단위를 만들었다.
그것이 바로 DWORD.
DWORD 는 Double WORD 의 약자로 WORD가 2배(unsigned long)라는 소리다.
typedef unsigned long long QWORD;
- QWORD의 탄생 일화
상단의 DWORD 는 기존 16bit에서 32bit 로 증가 했다.
다만 현재 사용되는 많은 프로세서가 64bit로 사용되고 있다.
따라서 64bit 짜리 기본 처리 단위가 또! 필요해졌다.
64bit 는 16bit * 4 이므로
Quad WORD, 즉 QWORD가 탄생하게 되었다.
<요약>
- WORD
Intel 사의 16비트 CPU 에서 기본 처리 단위를 WORD로 지정 하였다.
- DWORD
프로세서의 처리 단위가 증가하면서 32bit 단위가 필요해져 WORD를 Double 처리해서 DWORD가 탄생했다.
- QWORD
64bit 단위도 필요해서 Quad WORD 인 QWORD도 탄생했다.
- 기본 처리 단위란?
CPU 에서 레지스터에 데이터를 옮겨 놓을 수 있는 데이터의 단위이다.
ex) 8비트 프로세서(8085) -> 8bit = 기본 처리 단위
16비트 프로세서(8086) -> 16bit = 기본 처리 단위
'C,C++' 카테고리의 다른 글
cin, cout, cerr, clog 와 endl 에 대하여 (0) | 2023.07.18 |
---|---|
iostream 헤더 파일 이란 <iostream> (0) | 2023.07.17 |
[C/C++] h, cpp 의 관계, include 의 원리 (0) | 2019.02.14 |
[C++]warning C4482 : 비표준 확장 에 대해서 (0) | 2019.01.31 |
[C++]type casting에 관하여 (0) | 2019.01.31 |