C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[28168] Re:Re:Re:[질문]답변 감사합니다... 그런데... 데이타가 좀....
김용수 [heredity] 1185 읽음    2003-12-11 13:26
-.-;;
결론부터 말씀드리면 .....
결과엔 이상이 없습니다. 10진수 2003은 16진수로 7d3(C/C++ 표현으로 0x07D3)입니다.
0x7D3를 10수로 다시 변환하면 7*16*16 + 13*16 + 3 = 2003이 되며,
이 값은 각각 상.하위 Byte에 0x07, 0xD3으로 보관됩니다(1 Byte로 표현할 수 있는 범위는 0 ~ 255임).
그러므로 LOBYTE(WYear)하면 하위 Byte값인 0xD3이 나오는 것은 당연한 일 입니다.
또한 Bmonth의 값의 '\f'는 'f'와는 다른 값이며, FF(Form Feed) 문자로 0x0C(10진수 12)을
의미합니다. Bday의 값 '\v'도 'v'가 아니며, VF(Vertical Tab) 문자를 나타내며
0x0B(10진수 11)을 의미합니다.
다시말하면 표현상의 차이일 뿐 값 자체엔 이상이 없습니다.
즐거운 하루 되시길.....

------------------------------------------------------------------------------------------

조진수 님이 쓰신 글 :
:     BYTE Byear, Bmonth, Bday;
:     WORD Wyear, Wmonth, Wday;
:
:     DecodeDate(MyTime, Wyear, Wmonth, Wday);
:
:     Byear  = LOBYTE(Wyear);
:     Bmonth = LOBYTE(Wmonth);
:     Bday   = LOBYTE(Wday);
:    
:  시간을 읽으면 Wyear에는 2003 이 대입되고, Wmonth는 12 가 대입되고, Wday에는 11 이 대입 됩니다.
:
:  그런데 위의 방법과 같이 하면 Byear의 값에는 'D3'의 값이, Bmonth의 값에는 'f' 값이, Bday에는
:
:  'v'가  들어가네여.....   이걸 어떻게 가공 해야 되나여??   답변부탁드립니다.
:
:
:
: 김용수 님이 쓰신 글 :
: : 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형으로 빠꿔서 시리얼로 보낼려고 하는데.... 잘안돼네여... 다른 글을 봐도 모르겟고...
: : :
: : :  답변 부탁드립니다.

+ -

관련 글 리스트
28161 [질문]Word를 형변환시키려하데... 어찌.... 조진수 935 2003/12/10
28163     Re:[질문]Word를 형변환시키려하데... 어찌.... 김용수 2630 2003/12/11
28168             Re:Re:Re:[질문]답변 감사합니다... 그런데... 데이타가 좀.... 김용수 1185 2003/12/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.