C,C++

[C/C++] WORD, DWORD, QWORD

Dongjun_ 2019. 3. 4. 14:46

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 = 기본 처리 단위

 

 

반응형