BYTE WORD DWORD详解

来源:互联网 发布:网络创业课理论与实践 编辑:程序博客网 时间:2024/06/11 15:19

一、解释:

BYTE:     unsigned char。  1个字节  范围2^8-1  即0-255

WORD:   unsigned short。 2个字节 范围2^16-1 即0-65535

DWORD:unsingned long。 4个字节 范围2^32-1 即0-4294967295

unsigned:代表的是无符号数据,大于等于0。


二、BYTE WORD DWORD之间的转换,用的是宏定义。

1.BYTE LOBYTE(

WORD wValue

);

解释:取16位无符号数据的低8位。

例子:WORD wValue = 0x1234;

printf("WORD:0x%x LOBYTE:0x%x\n", wValue, LOBYTE(wValue)); 

//结果:WORD:0x1234 LOBYTE:0x34。

2.BYPE HIBYTE(

WORD wValue

);

解释:取16位无符号数据的高8位。

例子:WORD wValue = 0x1234;

printf("WORD:0x%x HIBYTE:0x%x\n", wValue, HIBYTE(wValue)); 

//结果:WORD:0x1234 HIBYTE:0x12。

3.WORD LOWORD(

DWORD dwValue

);

解释:取32位无符号数据的低16位。

例子:DWORD dwValue = 0x12345678;

printf("DWORD:0x%x LOWORD:0x%x\n", dwValue, LOWORD(dwValue)); 

//结果:DWORD:0x12345678 LOWORD:0x5678。

4.WORD HIWORD(

DWORD dwValue

);

解释:取32位无符号数据的低16位。

例子:DWORD dwValue = 0x12345678;

printf("DWORD:0x%x HIWORD:0x%x\n", dwValue, HIWORD(dwValue)); 

//结果:DWORD:0x12345678 HIWORD:0x1234。

5.WORD MAKEWORD(

BYTE bLow,

BYTE bHigh

);

解释:连接两个8位无符号数据为16位数据。

例子:BYPT bLow = 0x34, bHigh = 0x12;

printf("bLow:0x%x bHigh:0x%x MAKEWORD:0x%x\n", bLow, bHigh, MAKEWORD(bLow, bHigh));

//结果:bLow:0x34 bHigh:0x12 MAKEWORD:0x1234。

6.DWORD MAKELONG(

WORD wLow,

WORD wHigh

);

解释:连接两个16位无符号数据为32位数据。

例子:WORD wLow = 0x5678, wHigh = 0x1234;

printf("wLow:0x%x wHigh:0x%x MAKELONG:0x%x\n", wLow, wHigh, MAKELONG(wLow, wHigh));

//结果:wLow:0x5678 wHigh:0x1234 MAKELONG:0x12345678。





1 0
原创粉丝点击