DWORD WORD BYTE 相互轉(zhuǎn)換
DWORD 4個字節(jié)
WORD 2個字節(jié)
BYTE 1個字節(jié)
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“你好” 這樣的四字節(jié)字符串 轉(zhuǎn)換為DWORD 進(jìn)行保存
- 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
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報。