|
WORD형(16 Bit)를 BYTE(8 Bit)로 변환하는 방법은 Windef.h에 정의된 HIBYTE, LOBYTE Macro를 사용하면 됩니다.
<예>
WORD wData = 0x1234;
BYTE byHigh = HIBYTE( wData );
BYTE byLow = LOBYTE( wData );
Caption = AnsiString( "" ).sprintf( "%x %x", byHigh, byLow ); // "12 34"가 Caption에 나타남,
참고로 DWORD(DOUBLE WORD)를 상.하위 WORD로 나누는 HIWORD, LOWORD등의 Macro도 있으니
참조하시기 바랍니다.
#define MAKEWORD(a, b) ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))
#define MAKELONG(a, b) ((LONG)(((WORD)((DWORD_PTR)(a) & 0xffff)) | ((DWORD)((WORD)((DWORD_PTR)(b) & 0xffff))) << 16))
#define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xffff))
#define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16))
#define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xff))
#define HIBYTE(w) ((BYTE)((DWORD_PTR)(w) >> 8))
즐거운 하루 되시길....
----------------------------------------------------------------------
조진수 님이 쓰신 글 :
: Word Wyear, Wmonth, Wday;
:
: MyTime = Now();
: DecodeDate(MyTime, Wyear, Wmonth, Wday);
:
: Word형을 Byte형으로 빠꿔서 시리얼로 보낼려고 하는데.... 잘안돼네여... 다른 글을 봐도 모르겟고...
:
: 답변 부탁드립니다.
|