DWORD WORD BYTE 相互转换

37 篇文章 1 订阅

 DWORD WORD BYTE 相互转换

  

  DWORD  4个字节

  WORD     2个字节

  BYTE       1个字节

 

1) DWORD--->WORD

	DWORD dw=0;


	WORD hW=HIWORD(dw);
	WORD lW=LOWORD(lw);


2)WORD--->DWORD

	DWORD dw=0;


	WORD hW=HIWORD(dw);
	WORD lW=LOWORD(lw);


	dw=MAKELONG(lw,hw);


3) WORD---->BYTE

	WORD word=0;
	BYTE hb=HIBYTE(word);
	BYTE lb=LOBYTE(word);


4)BYTE------>WORD

	WORD word=0;
	BYTE hb=HIBYTE(word);
	BYTE lb=LOBYTE(word);

	word = MAKEWORD(lb,hb);


5) "ABCD" 或L“你好” 这样的四字节字符串 转换为DWORD 进行保存

	WCHAR str[3]={L"你好"};

	memcpy(&dWord,str,4);


	WCHAR hChar=(WCHAR)HIWORD(dWord); // 好
	WCHAR lChar=(WCHAR)LOWORD(dWord); // 你


综合例子:

	char  *name="abcd";
	DWORD dWord=0;


	WORD hw=HIWORD(dWord);
	WORD lw=LOWORD(dWord);

	BYTE hhb=HIBYTE(hw);
	BYTE lhb=LOBYTE(hw);

	BYTE hlb=HIBYTE(lw);
	BYTE llb=LOBYTE(lw);



	hhb   =   name[0]; 
	hlb   =   name[1]; 
	lhb   =   name[2]; 
	llb   =   name[3]; 

	hw   =   MAKEWORD(hlb,   hhb);  //ba
	lw   =   MAKEWORD(llb,   lhb);  //dc

	//dWord 为 "dcba"
	dWord   =   MAKELONG(lw,   hw); //dcba

	hw=HIWORD(dWord); // ba
	lw=LOWORD(dWord); // dc

	hhb=HIBYTE(hw);  // a
	lhb=LOBYTE(hw);  // b

	lhb=HIBYTE(lw);  // c
	llb=LOBYTE(lw);  // d



///  对比程序  ///

	// dWord 为 "abcd"
	memcpy(&dWord,name,4);

	hw=HIWORD(dWord); // cd
	lw=LOWORD(dWord); // ab

	hhb=HIBYTE(hw);   // d
	lhb=LOBYTE(hw);   // c

	lhb=HIBYTE(lw);   // b
	llb=LOBYTE(lw);   // a



 

参考资料:

http://topic.csdn.net/t/20040609/10/3076147.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水迎朝阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值